Я видел много сообщений по этому поводу, но, похоже, ни одна из них не решила мою проблему.У меня есть default_scope
на модели, подобной этой:
default_scope where(:is_active => true).order('LOWER(table.name)');
У меня есть другие (нормальные) области, и я хочу создать область inactive
, используя unscoped
.Я хотел бы определить его как область видимости, но он работает только тогда, когда он определен как метод класса:
# works
def self.inactive
unscoped { where(:is_active => false) }
end
# none of these work
scope :inactive, unscoped { where(:is_active => false) }
scope :inactive, with_exclusive_scope { where(:is_active => true) }
scope :inactive, unscoped.where(:is_active => false)
scope :inactive, lambda { unscoped { where(:is_active => false) } }
scope :inactive, unscoped { lambda { where(:is_active => false) } }
unscoped do
scope :inactive, where(:is_active => false)
end
Есть ли способ, который я пропустил, или мне нужно использовать метод класса, чтобы определить этоОбъем?