我想查找有关created_on> =一些日期和一些名称列表中的名称的记录。
对于“> =”,我必须使用sql条件。对于“IN”,我必须使用条件的哈希,其中键是:name,值是名称数组。
有没有办法将两者结合起来?
最佳答案
您可以在Rails 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一个lambda,以便您传递参数
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")