私は、3つのモデル、Person、Place、Thingを持つレールアプリを持っていると言います。 Thingが単一のテーブル継承を使用しているので、FancyThingサブクラスとScaryThingサブクラスがあるとします。次に、map.resources :people, :places, :things
で定義されたルートがあります。したがって、FancyThingsとScaryThingsのコントローラーはなく、ThingsControllerはどちらのタイプも処理します。RailsのSTIクラスの基本クラスのルートを取得
は今、私は何のリストは、それらへのリンクを持って示したコードを持っている必要がありますと言います。私は私の見解では、このコードをお持ちの場合:
<% @items.each do |item| %>
<%= link_to item.name, item %>
<% end %>
項目が人や場所であれば、これは正常に動作し、polymorphic_path
は正しいルートを生成するの面倒を見ます。しかし、アイテムがFancyThingかScaryThingなら、これは吹き飛ばされます。fancy_thing_path
を使用しようとします。これにはルートはありません。どういうわけかthing_path
を使ってみたいです。理想的には、Thingおよび/またはそのサブクラスに、ルートを生成するためにサブクラスが基本クラスを使用する必要があることを示すメソッドがあります。これに優雅な解決策はありますか?
map.resources:物事:has_manyの=>
これはレールの開発に[オープンチケット](http://dev.rubyonrails.org/ticket/10454)です。それに対処する方法の提案については、チケットを参照してください。 – MarkusQ