Ruby on rails 5 如何更改Rails路由上的自动命名参数id?
我的路由文件有一个要完成的定义:Ruby on rails 5 如何更改Rails路由上的自动命名参数id?,ruby-on-rails-5,Ruby On Rails 5,我的路由文件有一个要完成的定义: resources :disputes do scope module: :disputes do resources :conferences, shallow: true do put :finish end end end Rails自动将参数id与名称:conference\u id放在一起,但我希望改用:id conference_finish PUT /conferences/:conference_i
resources :disputes do
scope module: :disputes do
resources :conferences, shallow: true do
put :finish
end
end
end
Rails自动将参数id与名称:conference\u id
放在一起,但我希望改用:id
conference_finish PUT /conferences/:conference_id/finish(.:format) disputes/conferences#finish {:format=>:json}
有办法做到这一点吗?谢谢。您可以这样做:
put "conferences/:something/finish", to: "disputes/conferences#finish"
您可以通过使用成员选项来改进Gabriel的答案,具体如下(我不知道它是否适用于您的情况): 您也可以使用单行方式:
resources :disputes do
scope module: :disputes do
resources :conferences, shallow: true do
put :finish, on: :member
end
end
end
这样,控制器中就有了params[:id]。顺便说一下,资源嵌套深度不应超过1级。调查
resources :disputes do
scope module: :disputes do
resources :conferences, shallow: true do
put :finish, on: :member
end
end
end