У меня есть Пользователь модель, которая принадлежит Профиль (принадлежит_полиморфному). Одна модель поставляется в двух подклассах, но profile_type в Пользователь всегда соответствует родительской модели.Наследование и полиморфные ассоциации в рельсах
User < ActiveRecord::Base
belongs_to :profile, :polymorphic => true
SomeProf < ActiveRecord::Base
has_one :user, :as => :profile
SomeDeepProf1 < SomeProf
SomeDeepProf2 < SomeProf
Тогда:
sdp1 = SomeDeepProf1.new
user = sdp1.create_user
user.profile_type
> 'SomeProf'
Даже о том, объединение в подклассы, то profile_type остается SomeProf.
Почему это происходит? Есть ли какой-либо способ, с помощью которого profile_type соответствует подклассу, а не родительскому классу?
Да, Марсель, я это заметил. Мой код использует profile_type, чтобы определить тип пользователя и избежать дополнительного доступа к базе данных. Спасибо за объяснение! – nanda