检索 Rails 中的数据库记录

Retrieve database records in Rails

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

现在如何获取 gender = "male" 的所有行。我试着 如下所示获取数据。

p = Person.find_by_gender("male")

以上语句正常工作。但是它returns只有1条记录。因为,该语句被转换为类似以下查询。

SELECT  "persons".* FROM "persons" WHERE "persons"."gender" =  LIMIT 1  [["gender", "male"]]

由于limit设置为1所以returns只有1条记录。那么,如何取消限制? 如果gender,我的要求是获取table中的所有记录 匹配 "male"

使用where

Person.where(gender: "male")

find方法总是returns只有一条记录

在 rails 中查找方法总是 return 单条记录,这就是为什么它 returning 单条记录。

Person.find_by_gender("male")

使用 Where 为您提供匹配记录数组(即 ActiveRecord::Relation)

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