У меня есть классовая иерархия, но не наследование одной таблицы.
ThrowAway < ActiveRecord::Base
и
Junk < ThrowAway
проблема в том, чтовсе ThrowAway
объекты имеют ссылки на Location
.A Location
belongs_to :throw_away, :polymprohic => true
Проблема заключается в том, что если я определю
ThrowAway < ActiveRecord::Base
has_many :locations, :as => :throw_away
end
, то даже если Junk наследует от него и определяет другое имя таблицы,Столбец throw_away_type
всегда будет установлен на ThrowAway
, где я на самом деле хочу, чтобы он был установлен на Junk
.
Теперь будет много таких подклассов, поэтому будет Stuff < ThrowAway
Rags < ThrowAway
и т. Д. Яхотите, чтобы все они имели Location
без определения отношения местоположения в каждом отдельном классе.
Возможно ли это с рельсами?Проблема в том, что здесь есть не только местоположение, но и другие подобные отношения, и я бы предпочел придерживаться СУХОГО здесь.Я предполагаю, что мне нужно создать метод генератора, который будет выполняться на текущем объекте и генерировать эти генераторы отношений во время выполнения.
Спасибо.