2
在Rails 2,你可以添加一個前導斜槓到:控制器參數來獲得一個域相對的網址。像這樣的:Rails 3域相關網址
# anywhere in the app, Rails 2
>> url_for(:controller => '/posts', :action => 'index')
=> "/posts"
然而,在的Rails 3,這似乎不起作用如果你是在一個深嵌套控制器。例如,如果我在Home :: Foo中,它可以工作。如果我在首頁::富::酒吧是,這是行不通的:
# in Home, works
>> url_for(:controller => '/posts', :action => 'index')
=> "/posts"
# in Home::Foo, works
>> url_for(:controller => '/posts', :action => 'index')
=> "/posts"
# in Home::Foo::Bar, does not work
>> url_for(:controller => '/posts', :action => 'index')
=> "home//posts"
的問題是:什麼是正確的Rails讓使用url_for相對域鏈接()的3路?
問題在於你需要爲每個控制器修改routes.rb ......這不是一個壞的解決方案,但它有點挫敗了':controller =>'的目的,不是嗎? –
也許我可以使用寧靜的路徑,但a)我沒有在我的應用程序中使用寧靜的路徑,b)像@Yar說的那樣,我必須隨處更新。 – dodgeandburn