Я использую spree
, и мои ruby
навыки не помогают мне. Каждый продукт имеет product property
, где свойство имеет имя: Seller
.
Вот карта модели:
Product has many ProductProperty
ProductProperty belongs_to Property
Product has many Property through ProductProperty
Я хочу сделать Product.includes(:seller)
, где продавец ProductProperty
, где Property.name = 'Seller'
Моя неверная попытка сейчас:
base.has_one :seller, -> { joins(:properties).where(spree_properties: {name: 'Seller'}) }, inverse_of: :product, class_name: 'Spree::ProductProperty'
Редактировать: Примеры запросов, если код работал:
SELECT "spree_products".* FROM "spree_products" WHERE "spree_products"."deleted_at" IS NULL AND "spree_products"."id" = $1 LIMIT $2
SELECT "spree_product_properties".* FROM "spree_product_properties" INNER JOIN "spree_properties" ON "spree_properties"."id" = "spree_product_properties"."property_id" WHERE "spree_product_properties"."product_id" in [$1] AND "spree_properties"."name" = $2