在rails中,为什么我的finder方法只返回一个结果,当我希望它返回所有结果时?

时间:2017-11-08 15:27:23

标签: sql ruby-on-rails find ruby-on-rails-5 finder

我正在使用Rails 5.0.3。如何使用取景器查找所有匹配的记录?我有

my_obj = self.find_by_name_and_day_and_user_id(name, day, user_id)

但它只返回一个结果。当我运行启用SQL时,它正在添加

 LIMIT 1

子句。如何编写将返回所有结果而不仅仅是一个结果的finder方法?

2 个答案:

答案 0 :(得分:3)

您应该使用where,就像这样

self.where(name: name, day: day, user_id: user_id)

答案 1 :(得分:0)

find_by方法始终返回第一个匹配记录。所以你应该使用where子句来返回所有匹配的记录。

my_obj = self.where(name: name, day: day, user_id: user_id)