具有动态细分的资源

时间:2014-05-18 21:16:50

标签: ruby-on-rails ruby ruby-on-rails-4

在我的rails 4应用程序中,我有以下代码:

 get "products/:token" => "products#show"
 delete "products/:token" => "products#destroy"
 ... (for each HTTP method)

我已阅读http://guides.rubyonrails.org/routing.html,但无法弄清楚是否有办法:

resources :products

并将其默认为:token段而不是:id。

我试过了:

def to_param
  token
end

但这似乎不起作用

2 个答案:

答案 0 :(得分:1)

您应该能够使用param选项定义参数键,如下所示:

resources :products, param: :token

这将为您param[:token]而不是param[:id]

答案 1 :(得分:0)

如果您要覆盖to_param方法,则需要使用:id,因为这是to_param使用的方法。因此,将:token更改为:id