我一直想知道是否有任何方法可以自动为没有id的参数设置link_to帮助程序,例如:
preview_page_path(:token => @page.token)
我想改用这种语法:
preview_page_path(@page)
我希望Rails能够以某种方式弄清楚(在阅读routes.rb之后)预览操作正在使用:token param而不是:id。
我想要实现的是我有页面模型,我在后端使用id调用,并在前端使用令牌,所以我不能覆盖to_param方法。
这可能吗?
答案 0 :(得分:0)
尝试覆盖to_param方法
class Page
def to_param
token
end
end
OR
定义页面的自定义路线
匹配" / pages /:token" => "#页预览"
在您的控制器中,旧的
PARAMS [:ID]
将是
PARAMS [:令牌]
,您可以使用以下命令从数据库获取页面:
Page.find_by_token(PARAMS [:令牌])