在没有嵌套资源的情况下关联两个对象

时间:2014-02-27 03:42:07

标签: ruby-on-rails routes

现在我有这个:

resources :sources do
  resources :pages
end

当我想为特定资源创建页面时,我使用以下路径助手:

new_source_page_path(source_id)

所以在控制器中我知道我需要为哪个源创建页面。

我的路线变得非常凌乱,筑巢深度很高,我决定避免筑巢。但我怀疑的是,如果我有这个:

resources :sources
resources :pages

在我的PagesController的新操作中,我如何传递或告知这个新对象需要与该特定来源相关联?

1 个答案:

答案 0 :(得分:0)

您可以将source_id作为GET参数传递。创建您的页面#这样的新链接:

<%= link_to "new page", "/pages/new?source_id=#{source_id}" %>

然后在页面#new action中,在创建新页面时将该源分配给页面:

@page = Page.new
@page.source = Source.find params[:source_id]