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

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

ПРИМЕЧАНИЕ: 2 условия генерируются как области действия рельсов, и их нельзя легко изменить на что-то вроде где ("x или y ") напрямую.

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

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

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

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

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

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

Кажется ( согласно Readme Арел ):

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

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

(admins.or authors).to_sql

58
задан Dmytrii Nagirniak 2 November 2011 в 05:57
поделиться