Я пытаюсь выяснить, как сделать запрос к activerecord и получить список объектов, соединяясь через другие объекты.
Вот упрощенный пример.
class Person < ApplicationRecord
has_many :wearings
has_many :shirts, through :wearings
end
class Wearing < ApplicationRecord
belongs_to :shirt
belongs_to :person
#has wear date + other attributes
end
class Shirt < ApplicationRecord
scope :white, -> {where(white:true)}
scope :large, -> {where(large:true)}
scope :sleeves, -> {where(sleeves:true)}
end
Люди владеют рубашками, и даже могут иметь несколько одинакового цвета. В этом случае я хочу получить записи об износе всех рубашек, которые соответствуют моим критериям.
Я могу вернуть рубашки как:
shirts = person.shirts.white.large
Я хотел бы иметь возможность выполнять один и тот же запрос с использованием областей, но вместо этого получить обратно подмножество person.wearings
, которое включает большие белые рубашки.
Это в Rails 5.