配置rails以在所有路由上使用完整的`object_name`_id参数?

时间:2015-01-02 19:53:24

标签: ruby-on-rails

在rails中创建路由时,resources方法会生成以下路由

resources :objects

# => GET '/objects/:id'
# etc...

但是,当resources id参数内的路由嵌套时,resources :objects do resources :nested_objects end # => GET '/objects/:object_id/nested_objects/:id' 参数适用于嵌套资源,

param[:id]

我更喜欢资源从不使用param[:object_id],而是始终使用完整的id,因此我可以在嵌套控制器时封装类似的行为。

有配置吗?为了方便每隔一段时间写object_name_id代替{{1}},设计似乎非常糟糕

1 个答案:

答案 0 :(得分:1)

params[:id]始终指向当前资源的id。那就是大会。 您可以在routes.rb中覆盖此约定,如下所示:

resources :objects do
  resources :nested_objects, param: :nested_object_id
end
  

为了方便编写id,似乎设计非常糟糕   而不是object_name_id

我认为虽然