これに関する多くの投稿を見てきましたが、私の問題を解決するものはないようです。私は次の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
私が見逃した方法はありますか、それともクラスメソッドを使用してこのスコープを定義する必要がありますか?