例えば、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を修正する方法について、何らかの参照するべきドキュメント、あるいは方法があれば教えてください。