Ruby on Rails的绝对路径命名路由从应用程序根
问题描述:
我试图建立一个名为路线页: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/posts
和blog/about
。当我打开blog/post/1
时,关于页面的链接将获得一个网址blog/post/about
。
如何强制它从应用程序根目录中创建绝对路径?
答
(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
您是否尝试过'about_path'? – theIV 2010-07-19 16:15:15
选项(b)是错误的,但是您确定在使用(a)时会得到相同的行为吗?如果是这样,请将由link_to生成的html源代码粘贴到about_url。 – mckeed 2010-07-19 16:22:29