Bu konuyla ilgili birçok yayın gördüm, ancak hiçbiri sorunumu çözmüyor gibi görünüyor.Raylar 3.1.3 unscoped scope
default_scope where(:is_active => true).order('LOWER(table.name)');
Diğer (normal) kapsamları var ve ben unscoped
kullanarak bir inactive
kapsamını oluşturmak istiyorum: Ben şöyle bir model üzerinde bir default_scope
var. Bir kapsamda olarak tanımlamak istiyorum, ama bir sınıf yöntemi olarak tanımlanan zaman çalışır:
# 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
Kaçırdığım bir yolu var mı, yoksa bu kapsamı tanımlamak için bir sınıf yöntemi kullanmak gerekiyor?
ile ilgili bir sorun açtım http://stackoverflow.com/questions/6919307/rails-3-default-scope-scope-with-overrride –
(Eğer okuyorsanız) orada yorumlar, gerçekten bir çözüm yok) –
Ayrıca 'except' ve' only''a da bakıyorum ama 'uns_system' ile problemin benzeri bir başka kapsamdan 'default_scope''u reddetmiyorlar ve 'with_exclusive_scope'. –