RailsでモデルのインスタンスからURLのパスを取得するときに、その取得するURLを変更する方法
例えば、Railsのscaffoldで、Viewなどを作成した場合、次のようなコードが生成されるかと思われます。フォーム画面だったりすると:
<%= form_for(@foobar) do |f| %>
....
<% end %>
であったり、あるいは
<%= link_to 'Show', @foobar %>
といったように。このテンプレートから、恐らく何らかの形で、モデルからパスを取得できるものである、っと推測が出来るように感じます。
しかし、このFoobarモデルが、HogeHogeモデルと関連するようになったため、当初URL構造を/foobar/:idから、/hogehoge/:id/foobar/:idといったURLにしたとします。
このとき、@foobarからアクセスすると、以前のまま/foobar/:idを生成してしまいます。仕方ないので、下のようにリンクを渡したりしています:
<%= link_to 'Show', hogehoge_foobar_path(:hogehoge_id => @hogehoge.id, :id => @foobar.id) %>
しかし、これはどう考えてもバットノウハウのように感じます。本来ならば、モデルインスタンスからURLを取得するほうが望ましいように感じます(要は@foobarから取得できるほうが望ましいように感じます)。
もし、モデルから取得されるURLを修正する方法について、何らかの参照するべきドキュメント、あるいは方法があれば教えてください。