Rails中的硬编码路由

drp*_*per 3 routing routes ruby-on-rails

假设我有这个:

<%= link_to "My Big Link", page_path(:id => 4) %>
Run Code Online (Sandbox Code Playgroud)

在我的page.rb中,我希望通过永久链接显示网址,以便我使用标准:

 def to_param
    "#{id}-#{title.parameterize}"
 end
Run Code Online (Sandbox Code Playgroud)

现在,当我单击"我的大链接"时,它会将我带到正确的页面,但地址栏中的URL不会显示所需的永久链接.相反,它只显示标准:

wwww.mysite.com/pages/4 
Run Code Online (Sandbox Code Playgroud)

这是因为我将id硬编码到page_path中吗?如果我使用直接的html,它也不起作用..

<a href="/pages/4">My Big Link</a>
Run Code Online (Sandbox Code Playgroud)

如果有人能够验证这种相同的行为并让我知道这是否有意,我将不胜感激.我需要硬编码的能力:id来指定确切的页面......

ret*_*eto 5

只需使用page_path(页面).我猜路径助手本身不访问数据库(这很好),但是如果它们被提供了一个对象,并且该对象有一个to_param方法,则该方法用于生成标识符.

<%= link_to "My Big Link", page_path(page) %>
Run Code Online (Sandbox Code Playgroud)