我想知道我是否可以进行多态关联以及存在验证
假设我有一个business
模型和一个address
模型,并且address
是多态的
class Business< ActiveRecord::Base
has_one :address, as: :addressable
validates_presence_of :address
end
class Address< ActiveRecord::Base
belongs_to :addressable, polymorphic: true
end
是否可以进行验证validates_presence_of :address
?使用此设置创建对象时遇到问题。
假设首先我创建了一个这样的业务对象
b = Business.new(name: "Hello23")
b.address = Address.new(street: "House 43 BCD")
b.save!
这行不通。它给出了一个undefined method constantize for 0:Fixnum
并且给出一个错误是有意义的,因为当它试图将地址保存到 db 时,它没有找到可寻址的 id,因为业务尚未保存并且没有分配给它的 id .
但从另一边也不可能 - 如果没有地址,我无法保存业务。
处理这种情况的最佳方法是什么?
****除此之外,如果我还想像这样在地址端进行验证怎么办**
validates_presence_of :addressable
我已经为此苦苦挣扎了大约 2 天。让我们看看你们有什么想法?**