有人可以帮我更好地理解嵌套属性中的参数吗?
我正在使用 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
谢谢你的耐心。