在 Rails 2 中,您可以向:controller param添加一个前导斜杠,以获取域相对URL。比如这个:
# anywhere in the app, Rails 2
>> url_for(:controller => '/posts', :action => 'index')
=> "/posts"
但是,在 Rails 3 中,如果你是一个深层嵌套的控制器,这似乎无法正常工作。例如,如果我在Home :: Foo,它可以工作。如果我在Home :: Foo :: Bar,它不起作用:
# 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"
问题是:使用url_for()获取域相关链接的Rails 3方法是什么?
答案 0 :(得分:1)
你不能只使用帖子的宁静路径吗?
的routes.rb
map.resources :posts
anyview.html.erb
posts_path
无论你身在何处,都应该生成'/ posts'。