2014-05-18 99 views
2

在我的Rails应用4,我有以下代码:资源动态段

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

我读过http://guides.rubyonrails.org/routing.html,但无法弄清楚,如果有只是一个方式做:

resources :products 

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

我尝试这样做:

def to_param 
    token 
end 

但这似乎并没有工作

回答

1

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

resources :products, param: :token 

这会给你param[:token]而不是param[:id]

+1

非常感谢!这应该被添加到Rails指南 –

0

如果您打算覆盖to_param方法,那么您将需要使用:id,因为这是to_param的用途。因此请将:token更改为:id