find_by仅返回第一个值

时间:2018-08-14 01:20:00

标签: ruby ruby-on-rails-5

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

这是我所做的:

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

但是它只返回第一个值。

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

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

为什么要应用LIMIT 1?

1 个答案:

答案 0 :(得分:6)

find_by(..)就是这样做的;这是where(..).first的快捷方式。

如果需要所有记录,则需要使用where

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