Rails 3.1.3 без области видимости

Я видел много сообщений по этому поводу, но, похоже, ни один из них не решил мою проблему. У меня есть default_scope в такой модели:

default_scope where(:is_active => true).order('LOWER(table.name)');

У меня есть другие (нормальные) области видимости, и я хочу создать неактивную область, используя без области действия . Я хотел бы определить его как область видимости, но она работает, только если определена как метод класса:

# 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

Есть ли способ, который я пропустил, или мне нужно использовать метод класса для определения этой области?

7
задан sethvargo 4 January 2012 в 22:13
поделиться