我的名为Person
的模型包含3列name
,age
,gender
。
现在如何获取gender = "male"
的所有行。我试着
获取数据如下所示。
p = Person.find_by_gender("male")
以上陈述正常运作。但它只返回1条记录。因为,语句转换为以下查询。
SELECT "persons".* FROM "persons" WHERE "persons"."gender" = $1 LIMIT 1 [["gender", "male"]]
由于限制设置为1,它只返回1条记录。那么,如何取消限制?我要求获取表中的所有记录gender
匹配"male"
。
答案 0 :(得分:2)
使用where
Person.where(gender: "male")
find
方法始终只返回一条记录
答案 1 :(得分:1)
在rails中,find方法总是返回单个记录,这就是它返回单个记录的原因。
Person.find_by_gender("male")
使用Where给出匹配记录数组(ActiveRecord :: Relation)
Person.where(:gender => "male")