簡體   English   中英

可以逆多態關聯嗎?

[英]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.locationproduct.owner.location

可以在Product類中完成以下操作(根據需要更改所有者/用戶關系的標識符):

class Product < ActiveRecord::Base
  delegate :location, to: :owner
end

如果您致電product.location ,將返回所有者的位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM