2010-07-19 24 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