ActiveRecord Arel ИЛИ условие

Как вы можете объединить 2 разных условия, используя логическое ИЛИ вместо И?

НОТА: 2 условия генерируются как области рельсов и не могут быть легко изменены в нечто подобноеwhere("x or y") непосредственно.

Простой пример:

admins = User.where(:kind => :admin)
authors = User.where(:kind => :author)

Легко применить условие AND (которое для этого конкретного случая не имеет смысла):

(admins.merge authors).to_sql
#=> select ... from ... where kind = 'admin' AND kind = 'author'

Но как вы можете создать следующий запрос с двумя доступными отношениями Arel?

#=> select ... from ... where kind = 'admin' OR kind = 'author'

Это выглядит (согласно Арель Ридме):

Оператор OR еще не поддерживается

Но я надеюсь, что это не применимо здесь и ожидаю написать что-то вроде:

(admins.or authors).to_sql

Ответы на вопрос(10)

Ваш ответ на вопрос