在嵌套路由中更改名称:id

时间:2013-03-15 21:16:30

标签: ruby-on-rails-3

我在rails中有一个嵌套路由,我需要更改:id的名称,我不想要:id因为我还有一个其他字段用作参数...我一直在谷歌上搜索但是找不到这样做的方法......有什么想法吗?

我有:

resources :user do
   resources :elements, :only=>[:create,:destroy]
end

并生成一个rake路线:

user_elements POST   /users/:user_id/elements(.:format)          elements#create
user_elements DELETE /users/:user_id/elements/:id(.:format)       elements#destroy

我需要像

这样的东西
user_elements POST   /users/:user_id/elements(.:format)          elements#create
user_elements DELETE /users/:user_id/elements/:CHANGED(.:format)       elements#destroy

谢谢!

2 个答案:

答案 0 :(得分:1)

我建议不要改变惯例。您可能需要手动声明路线。

那就是说,这样的事可能会奏效:

  resources :users do
     post 'elements(.:format)' => 'elements#create'
     delete  'elements/:changed(.:format)' => 'elements#destroy'
  end

答案 1 :(得分:0)

match "/users/:user_id/elements/:CHANGED(.:format)" => 'elements#destroy'

这可以做到!