ActiveRecordをサブクラス化するモデルオブジェクトがあります。さらに、STIを使用して、このオブジェクトのサブクラスを定義しました。これにより、さまざまなタイプと動作が定義されます。構造は次のようになります。
class AppModule < ActiveRecord::Base
belongs_to :app
end
class AppModuleList < AppModule
end
class AppModuleSearch < AppModule
end
class AppModuleThumbs < AppModule
end
ここで、ユーザーが新しいAppModuleを作成するオプションがあるビューで、ドロップダウンメニューから選択してもらいたいと思います。ただし、subclasses()メソッドを使用してAppModuleのサブクラスのリストを取得できませんでした。
<% form_for(@app_module) do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :type %><br />
<%= f.select(:type, options_from_collection_for_select(@app_module.subclasses().map{ |c| c.to_s }.sort)) %>
</p>
<p>
<%= f.submit 'Create' %>
</p>
<% end %>
私は得る:
NoMethodError: undefined method `subclasses' for #<AppModule:0x1036b76d8>
助けていただければ幸いです。どうもありがとう!