在rails中使find_by返回多个结果

roc*_*555 12 ruby postgresql ruby-on-rails

我试图返回用户创建的所有组.所有组都与用户ID相关联.当我运行find_by查询时,它只返回第一个结果.有没有办法让它返回多个?提前致谢

Aar*_*Cee 23

我正在写一个单独的答案,因为我不能评论James Lowrey的答案,因为我没有50分.

不推荐使用find_all_by(Ruby 4.2).

要从模型中获取活动记录列表,请执行以下操作:

Model.where(attribute_name: val)
Run Code Online (Sandbox Code Playgroud)

例如,要查找Vehicle表中的所有记录(具有列名"model_name"),使得model_name的值为"Audi",请执行

@vehicles = Vehicle.where(model_name: "Audi")
Run Code Online (Sandbox Code Playgroud)

您可以像这样迭代这些:

<%  @vehicles.each do |vehicle| %>
Run Code Online (Sandbox Code Playgroud)


cti*_*ide 13

将find_by更改为find_all_by,它将返回所有匹配的结果.

  • 注意:在Ruby 4.2中已弃用,请改用`where`。请参阅下面的AarCee答案。 (3认同)