У меня есть объект модели, который является подклассом ActiveRecord. Кроме того, с помощью STI я определил подклассы этого объекта, которые определяют различные типы и поведение. Структура выглядит примерно так:
class AppModule < ActiveRecord::Base
belongs_to :app
end
class AppModuleList < AppModule
end
class AppModuleSearch < AppModule
end
class AppModuleThumbs < AppModule
end
Теперь, в представлении, где пользователь имеет возможность создавать новые модули приложений, я хотел бы, чтобы они выбирали из раскрывающегося меню. Однако мне не удалось получить список подклассов AppModule с помощью метода subclasses ():
<% 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>
Буду признателен за любую помощь. Большое спасибо!