У меня есть модель с отношениями многие-ко-многим, реализованная с использованием "has_many through: Relations. Например,
Car has_many: функции, хотя:: feature_associations
У меня есть списокавтомобили (VIN1, VIN2, VIN3) и список функций: «4-дверный», «6-цилиндровый», «DVD-плеер», «GPS», «Bluetooth Audio», ...
КаждыйАвтомобиль может иметь несколько функций (с помощью ассоциаций функций, которые связывают их вместе).
Теперь я пытаюсь найти автомобили с несколькими функциями. Я хочу найти автомобили, которые имеют как «GPS», так и «4-дверный»."features.
До сих пор я нашел запрос, который даст мне автомобили с любой (ИЛИ) функцией, но я хочу, чтобы все функции (И)
class Feature < ApplicationRecord
has_many :feature_associations
has_many :cars, through: :feature_associations
end
class Car < ApplicationRecord
has_many :feature_associations
has_many :features, through: :feature_associations
end
class FeatureAssociation < ApplicationRecord
belongs_to :feature
belongs_to :car
end
Car.includes(:feature_associations,:features).references(:features).where( features: { name: ["4-door","GPS"] })
Вышеприведенное возвращает все автомобили с 4-дверным или GPS, но я ищу все автомобили с обоими.