使用link_to进行自动链接

时间:2014-08-08 16:55:07

标签: ruby-on-rails routes

我一直想知道是否有任何方法可以自动为没有id的参数设置link_to帮助程序,例如:

preview_page_path(:token => @page.token)

我想改用这种语法:

preview_page_path(@page)

我希望Rails能够以某种方式弄清楚(在阅读routes.rb之后)预览操作正在使用:token param而不是:id。

我想要实现的是我有页面模型,我在后端使用id调用,并在前端使用令牌,所以我不能覆盖to_param方法。

这可能吗?

1 个答案:

答案 0 :(得分:0)

尝试覆盖to_param方法

class Page
  def to_param
    token
  end
end

OR

定义页面的自定义路线

  

匹配" / pages /:token" => "#页预览"

在您的控制器中,旧的

  

PARAMS [:ID]

将是

  

PARAMS [:令牌]

,您可以使用以下命令从数据库获取页面:

  

Page.find_by_token(PARAMS [:令牌])