2013-06-29 3 views
0

이것은 나를 혼란스럽게합니다.ActiveRecord 개체 - 검색된 레코드 쿼리

내가 가진 : 놀리려는에서

person = Person.find_or_create_by(user_id: some_id) 
previous_person = Person.where('user_id < ?' some_id).limit(1).order('user_id desc') 
binding.pry 

내가 할 :

person.user_id 
=> 12 

previous_person.user_id 
NoMethodError: undefined method `user_id' for #<ActiveRecord::Relation::ActiveRecord_Relation_Person:0x007fdd24d635b8> 

왜 내가 previous_person의 USER_ID에 액세스 할 수 없습니다?

-

+0

예, 올바른 방법입니다. 문제가 해결되었습니다. – Snowcrash

답변

0

도현 (오타에 대한 사과는 직접 복사 및 붙여 넣기하지 않았다). 나는 내가 이것을 위해 다시 떨어 졌다고 믿을 수있다!

물론 Person.where는 배열을 반환합니다.

올바른 코드는 previous_person = Person.where('user_id < ?' some_id).order('user_id desc').first

+1

ActiveRecord는 .first를 .limit으로 변환하므로 둘 다 필요하지 않습니다. – Mori

+0

좋은 지적. 감사. – Snowcrash

+0

'limit'은 인수없이 아무것도하지 않습니까? – rxgx