在Rails中检索数据库记录

时间:2016-09-15 11:35:43

标签: ruby-on-rails ruby ruby-on-rails-4 activerecord psql

我的名为Person的模型包含3列nameagegender

现在如何获取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 个答案:

答案 0 :(得分:2)

使用where

Person.where(gender: "male")

find方法始终只返回一条记录

答案 1 :(得分:1)

在rails中,find方法总是返回单个记录,这就是它返回单个记录的原因。

Person.find_by_gender("male")

使用Where给出匹配记录数组(ActiveRecord :: Relation)

Person.where(:gender => "male")