Как я могу объединить две области с условием или?

#ruby-on-rails

#ruby-on-rails

Вопрос:

У меня есть 2 области :

   scope :active, -> { joins(:poi).merge(Poi.active) }
  scope :valided_by_user, -> { joins(:poi).merge(Poi.valided_by_user) } 
  

Я хотел бы, чтобы «отображалась» область, которая возвращает все записи, которые являются активными ИЛИ valided_by_user

Как я могу объединить эти две области с условием или?

Комментарии:

1. Как определяются Poi.active и Poi.valided_by_user ?

2. Они определены в Poi.rb : область действия : активная, -> { where(‘statut = ?’, 1) } область действия:valided_by_user, -> { where(‘statut = ?’, 2) }

Ответ №1:

вы можете сделать следующее

 scope :active_or_valided_by_user, -> { active.or(valided_by_user) }