首页 > 解决方案 > find_by 只返回第一个值

问题描述

我正在尝试检索特定部门内的所有员工姓名。

这是我所做的:

Employee.find_by(department:'IT').name

但它只返回第一个值。

这是我在控制台中得到的:

SELECT  "employee".* FROM "employee" WHERE "employee"."department" = $1 LIMIT $2  [["department","IT"], ["LIMIT", 1]]

为什么要应用 LIMIT 1?

标签: rubyruby-on-rails-5

解决方案


就是find_by(..)这样;这是where(..).first.

如果你想要所有的记录,你需要使用where.

Employee.where(department:'IT').map(&:name)

推荐阅读