0

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

我正在使用 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

谢谢你的耐心。

4

1 回答 1

0

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

于 2011-11-08T23:35:55.863 回答