Вы можете использовать именованные области в рельсах 2.1 и выше
Class Test < ActiveRecord::Base
named_scope :created_after_2005, :conditions => "created_on > 2005-01-01"
named_scope :named_fred, :conditions => { :name => "fred"}
end
тогда вы можете сделать
Test.created_after_2005.named_fred
Или вы можете дать named_scope лямбду, позволяющую передавать аргументы
Class Test < ActiveRecord::Base
named_scope :created_after, lambda { |date| {:conditions => ["created_on > ?", date]} }
named_scope :named, lambda { |name| {:conditions => {:name => name}} }
end
тогда можно сделать
Test.created_after(Time.now-1.year).named("fred")