Rails 3域相对url

时间:2011-07-06 18:40:58

标签: ruby-on-rails ruby-on-rails-3

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方法是什么?

1 个答案:

答案 0 :(得分:1)

你不能只使用帖子的宁静路径吗?

的routes.rb

map.resources :posts

anyview.html.erb

posts_path

无论你身在何处,都应该生成'/ posts'。