Как получить массив подклассов в Rails

У меня есть объект модели, который является подклассом 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>

Буду признателен за любую помощь. Большое спасибо!

5
задан joschi 14 November 2010 в 11:37
поделиться