2013-11-09 4 views
0

ActiveRecord를 사용하여 간단한 가져 오기를 실행하려고하는데 결과가 혼동 스럽습니다. 이것은 내가 실행하려고하는 코드입니다.ActiveRecord를 사용한 질의 결과

c = Child.where("name LIKE ?", "%John D%") 

나는 내 데이터베이스에 하위 모델과 해당 테이블을 가지고 있습니다. 데이터베이스에 "John Doe"레코드가 있으며 레일 콘솔에 출력됩니다. 그러나, 나는 내가

c = Child.find_by_name("John Doe") 

모든 것이 잘 작동 실행하면 그것은

=> "Child" 

대신

=> "John Doe" 

출력

c.name 

을 실행합니다. 확실한 해결책이 여기에 있다고 확신하지만, 나는 그것을 알아낼 수없는 것 같습니다.

답변

3

whereActiveRecord Relation을 반환합니다. 너 ActiveRecord::Relation::ActiveRecord_Relation_Child 줄 것입니다 c.class 할 경우. 쿼리에 대한 결과가없는 경우는 nil 될 것

c = Child.where("name LIKE ?", "%John D%").first 

참고 : 당신은 그냥 할 수있는 실제 객체를 얻을 수 있습니다.

+0

이것은 작동합니다. 'c = Child.where ("name LIKE?", "% John D %"). all을 사용하여 모든 일치하는 결과의 배열을 얻을 수도 있습니다 –

+0

Yup! 당신이 결과로 할 수있는 많은 것들이 있습니다 :). – swilliams

관련 문제