我有两个型号,Address
和User
:多HAS_ONE关联到一个多态模型
class Address < ActiveRecord::Base
belongs_to :resource, polymorphic: true
end
class User < ActiveRecord::Base
has_one :contact_address, class_name: "Address", as: :resource
has_one :billing_address, class_name: "Address", as: :resource
end
问题是,如果我创建billing_address
为User
它会自动设置为contact_address
,因为addresses
表没有指定不同的resource_type
(均为User
)。 你可以给我一些关于如何设置我的模型的建议吗?
谢谢
从我所理解的,你不需要做多态关联。你可以做一些事情,比如用户has_many:contact_address,并在地址表中有一个标记来表示该地址是否是账单地址,或者只是一个联系地址。我可以详细说明,如果这是你正在寻找的。 –
是的,这可能是一种方式,但我需要这是多态的关联:( –
当前的模式不会在任何情况下工作,无论你使用多态还是不...现在,如果你没有使用多态关联,那么再次问题将持续,因为在后端将被触发的SQL查询将是相同的,因为你已经指定了相同的资源和类... –