У меня есть User
, Profile
, Buyer
и Seller
объекты.
class User
has_many :profiles
end
class Profile
belongs_to :user
belongs_to :profileable, polymorphic: true
validates :user, presence: true, uniqueness: { scope: :profileable_type }
end
class Buyer
has_one :profile, as: :profileable, dependent: :destroy
has_one :user, through: :profile # is this needed?
end
class Seller
has_one :profile, as: :profileable, dependent: :destroy
has_one :user, through: :profile # is this needed?
end
Я хочу иметь возможность остановить создание Buyer
и Seller
, еслидействительный профиль не существует.
В консоли rails в настоящее время я могу создать Buyer
, создав Profile
без значения user:
.Следующее создаст Buyer
без Profile
существующего.
> Buyer.create(profile: Profile.create)
=> #<Buyer:0x00007fd44006cb80
id: 1,
user_id: nil,
created_at: Mon, 06 May 2019 03:41:04 UTC +00:00,
updated_at: Mon, 06 May 2019 03:41:04 UTC +00:00>
Я хотел бы понять, как это предотвратить.Мне нужен один из before_save
или такие обратные вызовы?