2017-11-08 17 views
0

레일 5.0.3을 사용하고 있습니다. 파인더를 사용하여 일치하는 모든 레코드를 어떻게 찾을 수 있습니까? 나는 가지고있다레일에서 필자의 finder 메소드가 모든 결과를 반환하기를 원할 때 왜 하나의 결과 만 리턴합니까?

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

하지만 단 하나의 결과 만 반환합니다. SQL을 실행하면

LIMIT 1 

절이 추가됩니다. 어떻게 하나의 결과가 아닌 모든 결과를 반환 할 finder 메소드를 작성합니까?

+0

'find_by_ *'는 항상 단일 결과를 반환합니다. 대신에'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)