2
Rails 2では、:controller paramに先行するスラッシュを追加して、ドメイン相対URLを取得することができます。このような:Rails 3ドメイン相対URL
# anywhere in the app, Rails 2
>> url_for(:controller => '/posts', :action => 'index')
=> "/posts"
しかし、Railsの3に、これはあなたが深くネストされたコントローラである場合を動作しないように見えます。たとえば、私がHome :: Fooにいると、それは動作します。私がホームにいる場合は:: 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"
質問です:)(なurl_forを使用して、ドメインの相対リンクを得るための適切なRailsの3方法は何ですか?
この問題は、すべてのコントローラのroutes.rbを変更する必要があるということです。悪い解決策ではありませんが、 ':controller =>'の目的を打ち負かしてしまうのですか? –
おそらく私は安らかな道を使うことができるかもしれませんが、a)私は自分のアプリとb)で落ち着いた道を使っていません。@ Yarのように、どこにでも更新しなければなりません。 – dodgeandburn