У меня есть то, что я, однако, должен быть очень простым набором моделей баз данных с ассоциацией типа «много-ко многим» через таблицу компоновщиков.Присоединиться к has_many: через атрибуты
class Product < ActiveRecord::Base
has_many :store_products
has_many :stores, through: store_products
end
class StoreProduct < ActiveRecord::Base
belongs_to :store
belongs_to :product
validates :price, presence: true
end
class Store < ActiveRecord::Base
has_many :store_products
has_many :products, through: :store_product
end
Так много магазинов могут продавать много продуктов и каждый продавать их по разным ценам. Я искал способ перечислить все продукты вместе с их самой низкой ценой во всех магазинах, используя joins
. Мне не повезло с этим. Лучшее, что у меня было, - это сделать запрос, который возвратил луковицы за самую низкую цену продажи (я думаю), но атрибут цены не был включен в выход.
Запрос Я использовал, чтобы сделать это было:
Product.joins(:store_products).select('products.*, MIN(store_products.price) AS store_product_price')
Любые предложения о том, где я неправильно или что мне нужно взглянуть на?
ваш класс продукта имеет «HAS_MANY: продукты, через: store_products», которые должны быть «has_many: магазины, через: store_products» –