Ruby on Rails使用应用程序根目录的绝对路径命名路由

时间:2010-07-19 16:04:10

标签: ruby-on-rails routing

我正在尝试为页面设置命名路由:

  • www.myhost.com/blog/about

    (map.about '/about', :controller => 'page', :action => 'about')

我有另一条资源路线:

  • www.myhost.com/blog/post/3

    (map.resources :posts)

现在我不知道应该如何链接到“关于”页面。如果我使用

  • a)<%= link_to 'About', about_url %>
  • b)<%= link_to 'About', 'about' %>

只有在我转到blog/postsblog/about时才能正常工作。当我打开blog/post/1时,指向about页面的链接会获得一个网址blog/post/about

如何强制它从应用程序根目录创建绝对路径?

1 个答案:

答案 0 :(得分:2)

(a)和(b)的HTML输出应该是这样的。仅在使用方法(b)时才会出现此问题。

A)

<a href="http://127.0.0.1:3000/about">About</a>

b)中

<a href="about">About</a>

如果您需要来自应用程序根目录的绝对路径,则可以将about_path作为第二个参数传递给link_to帮助程序。(<%= link_to 'About', about_path %>)。这将产生如下所示的链接。

<a href="/about">About</a>