2016-09-15 119 views
2

我的模型名为Person包含3列,即name,age,gender回收Rails中的数据库记录

现在如何获取所有行如果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",我需要获取表格中的所有记录。

回答

2

使用where

Person.where(gender: "male") 

find方法总是返回只有一个记录

1

在轨找到方法总是返回单个记录,这就是为什么它返回一个记录。

Person.find_by_gender("male") 

使用凡给你匹配的记录阵列(这是的ActiveRecord ::关系)

Person.where(:gender => "male") 
相关问题