[英]Is it possible to inverse polymorphic association?
我有四個模型:用戶,產品,所有權和位置。 產品通過所有權屬於用戶,而用戶通過所有權擁有許多產品。 用戶創建產品時,我希望如果用戶具有位置,則該產品將鏈接到同一位置。 所以這是我的問題:
我們可以轉換一下嗎:
class Location < ActiveRecord::Base
belongs_to :localizable, polymorphic: true
end
class User < ActiveRecord::Base
has_one :location, as: :localizable
end
class Product < ActiveRecord::Base
has_one :location, as: :localizable
end
到這個:
class Location < ActiveRecord::Base
has_many :localizables, polymorphic: true
end
class User < ActiveRecord::Base
belongs_to :location, as: :localizable
end
class Product < ActiveRecord::Base
belongs_to :location, as: :localizable
end
如何委托product.location
到product.owner.location
。
可以在Product類中完成以下操作(根據需要更改所有者/用戶關系的標識符):
class Product < ActiveRecord::Base
delegate :location, to: :owner
end
如果您致電product.location
,將返回所有者的位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.