Dave
Dave

Reputation: 19150

In rails, why is my finder method only returning one result when I want it to return all of them?

I'm using Rails 5.0.3. How do I find all matching records using a finder? I have

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

but it returns only a single result. When I run turn on the SQL, it is adding a

 LIMIT 1

clause. How do I write a finder method that will return all results and not just one?

Upvotes: 0

Views: 736

Answers (2)

Junan Chakma
Junan Chakma

Reputation: 651

find_by method always return first matching record. So you should use where clause which will return all matching records.

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

Upvotes: 0

Nikita Misharin
Nikita Misharin

Reputation: 2020

You should use where, like so

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

Upvotes: 3

Related Questions