Rails控制器=> PARAMS []

时间:2011-11-08 23:21:00

标签: ruby-on-rails ruby-on-rails-3 activerecord apotomo

有人可以帮助我更好地理解嵌套属性中的参数吗?

我正在使用Apotomo。但是对于这个例子。我们可以在ApplicationController

中假设它

我有一个简单的控制器显示动作。

if params[:id].present?
    @menu = Menu.find(params[:id])  
else
    @menu = Menu.first  
end

检查URL中是否指定了菜单ID。如果没有,它会显示第一个菜单。

只要我只在/ menus / URL上,这就行得很好。

但我有嵌套属性。所以一旦我们访问了URL / menus / 17 / categories /

它找到params [:id]作为类别,而不是菜单。

一旦我嵌套,我可以调用:menu_id,它工作正常。但不再适用于父对象。

无论我在URL中的哪个位置,如何查找菜单对象的params [:id]?

我是否完全错过了什么?

这也是我的溃败配置:

resources :menus, :only => [:show, :home] do
  resources :categories, :only => [:index, :show]
end

感谢您的耐心等待。

1 个答案:

答案 0 :(得分:0)

我会检查如何定义路由。也许这个链接以这种方式翻译是有原因的。