2

我在用户中有一个嵌套资源:

resources :users do
  resources :reservations
end

在我的控制器操作中,我可以使用 controller.controller_name 获取当前控制器名称。因此,在用户显示操作中,controller.controller_name 返回“用户”。同样,在预订显示操作中,它返回“预订”。

但是当我是像“http://mywesite/users/:id/mutations”这样的嵌套资源路由时,我想获取嵌套资源的父控制器,在这种情况下是“用户”。有没有办法使用控制器属性或路由检查器来检索它?我不喜欢正则表达式我的网址。

我可以检查我的参数 [:user_id],但这是否容易出错?我可能有一个注册控制器,可以在其中设置 :user_id。

我想要这个父资源的原因是因为我只想在当前操作与用户有关时在我的布局中创建一个搜索表单,例如在用户控制器或用户的嵌套资源控制器中执行的所有操作.

4

1 回答 1

3

在您的示例中 http://mywesite/users/:id/mutations将是http://mywesite/users/:user_id/mutations

你可以检查 params[:user_id].present?

请参阅从 URL 获取父资源

于 2012-03-05T11:58:38.457 回答