Rails中允许这种类型的东西:Model.find_by_X_and_Y_and_Z(attribute1, attribute2, attribute3)
答案 0 :(得分:3)
来自http://ar.rubyonrails.org/classes/ActiveRecord/Base.html
也可以使用多个 属性在同一个查找中 将它们与“和”分开,这样你就可以了 发现者喜欢 Person.find_by_user_name_and_password 甚至 Payment.find_by_purchaser_and_state_and_country 即可。 所以不要写作 Person.find(:first,:conditions => [“user_name =?AND password =?”, user_name,password]),你就是这么做的 Person.find_by_user_name_and_password(USER_NAME, 密码)。
答案 1 :(得分:0)
作为另一种解决方案,我认为你可以尝试组合几个范围。我的意思是你可能会使用一些独立的范围来检索一些数据,所以你不妨尝试一下。
所以,想象一下你有一个模特:
class YourModel < ActiveRecord::Base
scope :sent,where(:sent => true}
scope :by_param,lambda{|query| where("param= ?","#{query}")}
end
然后只需使用
YourModel.sent.by_par("something")