Edge Rails’e has_finder eklentisi dahil edilmiş ve ismen named_scope adını almış.
Biri yukarıdaki cümleyi kursa hiç heyecan duymazdım, çünkü bilmezdim ki has_finder eklentisinin ne kadar güzel olduğunu.
Misalen;
Şu iken;
class Yorum < ActiveRecord::Base
def self.onay
find(:all, :conditions => {:onay => true})
end
..
def self.onay
find(:all, :conditions => {:onay => true})
end
..
Şu oldu:
class Yorum < ActiveRecord::Base
named_scope :etkin, :conditions => { :onay => true }
end
named_scope :etkin, :conditions => { :onay => true }
end
Aşağıdaki örnek ile farklı bir kullanım alanını da görebiliriz (orjinali).
class User < ActiveRecord::Base
named_scope :inactive, :conditions => {:active => false} do
def activate
each { |i| i.update_attribute(:active, true) }
end
end
end
# Re-activate all inactive users
User.inactive.activate
named_scope :inactive, :conditions => {:active => false} do
def activate
each { |i| i.update_attribute(:active, true) }
end
end
end
# Re-activate all inactive users
User.inactive.activate
Gibi.
named_scope yazılım geliştiricisinin işini kolaylaştıran, ruby dili esnekliğinden yararlanan güzel bir çalışma olmuş. Faydalı.






