Можно ли отрицать область видимости в Rails 3?

У меня есть следующая область видимости для моего класса под названием Collection :

scope :with_missing_coins, joins(:coins).where("coins.is_missing = ?", true)

Я могу запустить Collection.with_missing_coins.count и получить результат обратно - он отлично работает! В настоящее время, если я хочу получить коллекции без недостающих монет, я добавляю еще одну область видимости:

scope :without_missing_coins, joins(:coins).where("coins.is_missing = ?", false)

Я обнаружил, что пишу много этих «противоположных» областей. Можно ли получить противоположность области видимости, не жертвуя удобочитаемостью или не прибегая к лямбда / методу (который принимает в качестве параметра true или false )?

Примерно так:

Collection.!with_missing_coins
32
задан Arslan Ali 22 August 2016 в 06:16
поделиться

1 ответ

Обновление . Теперь направляющие 6 добавляют удобные и изящные отрицательные перечислимые методы.

# All inactive devices
# Before
Device.where.not(status: :active)
#After 
Device.not_active

Сообщение в блоге здесь

-1
ответ дан 27 November 2019 в 20:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: