我在用户中有一个嵌套资源:
resources :users do
resources :reservations
end
在我的控制器操作中,我可以使用controller.controller_name获取当前控制器名称。因此,在用户show动作中,controller.controller_name返回“users”。同样在预订展示行动中,它返回“预订”。
但是,当我是一个嵌套的资源路由,如“http:// mywesite / users /:id / mutation”时,我想获得嵌套资源的父控制器,在本例中为“users”。有没有办法使用控制器属性或路由检查器检索这个?我不是正则表达式的粉丝。
我可以检查我的参数[:user_id],但这可能容易出错吗?我可能有一个注册控制器,其中可以设置:user_id。
我想要拥有此父资源的原因是因为我想在我的布局中仅在当前操作与用户有关时创建搜索表单,例如用户控制器或用户的嵌套资源控制器中执行的所有操作。
答案 0 :(得分:3)
在您的示例http://mywesite/users/:id/mutations中将http://mywesite/users/:user_id/mutations
您可以查看params [:user_id] .present?