2011-11-08 48 views
0

有人可以帮助我理解嵌套属性中的参数好一点吗?Rails控制器=> params []

我正在使用Apotomo。但是对于这个例子。我们可以假设它在ApplicationController中我有一个简单的控制器显示操作。

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

它检查是否在URL中指定菜单ID。如果不是,则显示第一个菜单。

只要我只在/ menus/URL上,这个效果很好。

但我有嵌套的属性。因此,一旦我们访问URL /菜单/ 17 /类别/

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

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

如何查找菜单对象的params [:id]而不管我在URL中的位置?

我是否完全错过了一些东西?

这是我击溃的配置,以及:

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

感谢您的耐心。

回答

0

我会检查路由是如何定义的。也许这是为什么这个链接是这样翻译的原因。

+0

不知道这将如何与这个问题有关。但我编辑添加我的路线配置,以防万一。谢谢... – Adam