2017-11-08 5 views
0

私はRails 5.0.3を使用しています。ファインダーを使用して一致するすべてのレコードを検索するにはどうすればよいですか?私はレールで、なぜ私はすべてのそれらを返すようにしたいときに私のファインダーメソッドは1つの結果を返すだけですか?

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

を返しますが、結果は1つだけです。 SQLを実行すると、

LIMIT 1 

節が追加されます。 1つではなく、すべての結果を返すファインダメソッドを作成するにはどうすればよいですか?

+0

「find_by_ *」は常に1つの結果を返します。代わりに 'where'を使用してください(これはあまり冗長ではなく、SQL構文に近いものです):'(name:name、day:day、user_id:user_id) ' – MrYoshiji

答えて

2

あなたはとても

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

find_by方法のように、whereを使用する必要があり、常に最初に一致したレコードを返します。したがって、一致するすべてのレコードを返すwhere句を使用する必要があります。

my_obj = self.where(name: name, day: day, user_id: user_id) 
関連する問題