Объединение по ИЛИ нескольких именованных областей в Ruby on Rails ActiveRecords

У меня есть такая модель автомобиля.

class Car < ActiveRecord::Base
    scope :modern, -> do
        where(make_date: 2018)
    end
    scope :black, -> do
        where(color: :black)
    end
    scope :bmw, -> do
        where(make: :bmw)
    end
end

Все современные машины я могу найти по Car.modern.

Я могу найти все черные машины по Car.black.

Я могу найти все автомобили BMW по Car.bmw.

Как мне использовать эти именованные области, чтобы найти все автомобили, которые являются «черными» или «современными»? Так что я могу получить Old-Black-Nissan, Modern-White-BMW, ​​Modern-black-Ford в одном наборе результатов.

Использование Rails 4.2.8


person Rakib    schedule 23.02.2018    source источник
comment
Ответ зависит от того, какую версию рельсов вы используете (›=5 или ‹5).   -  person jvillian    schedule 23.02.2018
comment
с использованием Rails 4.2.8   -  person Rakib    schedule 23.02.2018
comment
Возможный дубликат Rails: как связать запросы области с ИЛИ вместо И?   -  person Gerry    schedule 23.02.2018
comment
Если бы вы могли перейти на rails 5, в этой версии была добавлена ​​поддержка OR в ActiveRecord. api.rubyonrails.org/classes/ActiveRecord/   -  person Pablo    schedule 24.02.2018


Ответы (1)


Вы можете использовать этот гем. Подробнее здесь. Пожалуйста, внимательно изучите, прежде чем задавать вопросы самостоятельно. Скорее всего кто-то уже сталкивался с этой проблемой.

person Artur Martsinkovskyi    schedule 23.02.2018