你能找到三个属性吗?

时间:2011-05-12 23:16:18

标签: ruby-on-rails ruby ruby-on-rails-3

Rails中允许这种类型的东西:Model.find_by_X_and_Y_and_Z(attribute1, attribute2, attribute3)

2 个答案:

答案 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")