사용자, 제품, 소유권 및 위치의 네 가지 모델이 있습니다. 제품은 소유권을 통해 사용자에게 속하며 사용자는 소유권을 통해 많은 제품을 보유합니다. 사용자가 제품을 만들 때 사용자에게 위치가 있으면 제품이 동일한 위치에 연결되기를 바랍니다.다형성 연관을 역전시킬 수 있습니까?
우리는이를 변환 할 수 있습니다 :이에
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