【发布时间】:2011-07-27 16:48:59
【问题描述】:
我有两个嵌套资源,它们都使用父控制器。如何更改参数名称,以便得到params[:parent_id] 和params[:child_id] 而不是params[:parent_id] 和params[:id]?否则无法确定我要处理的是哪个孩子。
现在我正在映射每个单独的子路由 match 'child/:child_id' => 'parent#show' 但这几乎违反了 DRY 的每条规则,因为我有大约 5 条这样的路由(并且还会有更多)。
这是我的路线示例:
resources :parent do
resources :child1, :controller => :parent
resources :child2, :controller => :parent
end
这是我想做的事
resources :parent do
resources :child1, :controller => :parent, :key => :child1_id
resources :child2, :controller => :parent, :key => :child2_id
end
更新
我只是要重做路线,以便父级嵌套在每个子级之下。之所以最初没有这样做,是因为写它们的前同事不知道他在做什么。
这个结果看起来像:
resources :child1 do
resources :parent
end
resources :child2 do
resources :parent
end
【问题讨论】:
-
你能添加你的路由代码和一些你的控制器代码吗?
-
您是否有特定原因只想使用 parent_controller 而不是 child1_controller 等?
标签: ruby-on-rails-3