我有四種模式:用戶,產品,所有權和位置。產品屬於用戶,通過所有權和用戶擁有許多產品。 當用戶創建產品時,如果用戶具有位置,我希望該產品鏈接到相同的位置。因此,這裏是我的問題:是否可以逆多態關聯?
我們可以改變這個:
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
你不能這樣做:查詢一次只能獲取一個模型。 – apneadiving
然後,當用戶創建產品時,我必須複製用戶的位置以將其與產品相關聯? –
從模型中提取位置的附加值很少,它是查詢等的地獄...... – apneadiving