2010-07-19 59 views
2

我试图建立一个名为路线页:Ruby on Rails的绝对路径命名路由从应用程序根

  • www.myhost.com/blog/about

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

而且我有一个资源的另一条路线:

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

    (map.resources :posts)

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

  • 一)<%= link_to 'About', about_url %>
  • B)<%= link_to 'About', 'about' %>

它正常工作,只有当我去blog/postsblog/about。当我打开blog/post/1时,关于页面的链接将获得一个网址blog/post/about

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

+0

您是否尝试过'about_path'? – theIV 2010-07-19 16:15:15

+0

选项(b)是错误的,但是您确定在使用(a)时会得到相同的行为吗?如果是这样,请将由link_to生成的html源代码粘贴到about_url。 – mckeed 2010-07-19 16:22:29

回答

2

(a)和(b)的HTML输出应该是这样的。这个问题只会在使用方法(b)时发生。

一个)

<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> 
+0

我以为我尝试了about_url,但现在第二次测试它 - 它的工作原理! – Karl 2010-07-20 15:57:10