给出这些模型
modelOne
has_and_belongs_to_many :model_twos
modelTwo
has_and_belongs_to_many :model_ones
field_one: string
我如何使用有效记录来获取所有与field_one
等于"value_1"
和"value_2"
类似于ModelOne.joins(:model_twos).where(model_twos:{field_one: "value_1" AND "value_2"})
答案 0 :(得分:0)
如果您只想使用ActiveRecord(即不会回到Arel),这确实有点棘手。
我不是100%肯定它会起作用甚至产生令人满意的SQL,但我会尝试这样的事情:
class ModelOne < ActiveRecord::Base
scope :with_model_two_value, -> (val) { joins(:model_twos).where(model_twos: { field_one: val }) }
end
ModelOne.with_model_two_value('value_1').merge(ModelOne.with_model_two_value('value_2'))