Я использую однонамерное наследование в моем приложении rails и хочу явно указать тип экземпляра.
У меня есть следующее:
class Event < ActiveRecord::Base
class SpecialEvent < Event
который реализуется посредством наследования одной таблицы.
SpecialEvent.new
работает так, как ожидалось, но я хочу иметь возможность делать такие вещи, как
Event.new(:type => 'SpecialEvent')
Таким образом, я могу легко создавать различные типы sub_types в приложении.
Однако это не работает и, кажется, устанавливает :type
в nil
, а не значение, которое я ему задал; Я подозреваю, что это вызвано тем, что при вызове Event.new
он перезаписывает аргумент :type
.
Кто-нибудь получил хороший способ сделать это?