2011-10-04 1 views
5

는 드디어 2.3.8에서 3.1.0로 내 레일 애플 리케이션을 업그레이드하기 시작했습니다. 나는 액티브 레코드 쿼리에 대한 RailsCasts을 (http://railscasts.com/episodes/202-active-record-queries-in-rails-3)보고 있었다.콘솔에 활성 레코드 관계가 반환되지 않는 이유는 무엇입니까?

articles = Article.order("name") 

대신 액티브 레코드 관계를 반환하는, 내가 실행 쿼리를 참조하십시오 내가 콘솔 (레일 c)를 열고 다음과 유사한 쿼리 할

. 여기서 내가 뭘 잘못하고 있니?

레일 버전 : 3.1.0

RVM

1.9.2에 대한 여러분의 도움 주셔서 감사합니다!


편집 : 예제의 스크린 샷을 추가했습니다. enter image description here

답변

7

당신이 바로 최선을 다하고 있습니다. 콘솔이 출력시 inspect 메소드를 호출하기 때문에 조회가 실행 된 것을 볼 수 있습니다. 시도하십시오 articles = Article.order("name").class

+0

감사의 알 수 있습니다. 예제에서 스크린 샷을 추가했습니다. 예제 비디오에서 inspect 메서드가 호출되지 않는 이유를 알고 있습니까? – hade

+0

남자, 나는이와 내가 Arel을 재생하려고 처음으로 투쟁했다. – jaydel

8

.all, .last, .first, ...과 같은 쿼리 메서드가 호출 될 때 ActiveRecord 관계 클래스가 쿼리를 수행하도록 구성됩니다. 메소드들의리스트는 .inspect 반환 값의 표현을 표시하는 콘솔이라고 같은 방법을 포함한다.

왜냐하면 당신은 항상 쿼리의 결과를 볼 수 있기 때문에 객체는 결코 관계가 아닌 것처럼 보입니다.

그러나 당신은 객체 클래스를 검사 할 경우, 당신은 관계 문제가 될 것으로 보인다

Article.order("name").class 
# => ActiveRecord::Relation 
+0

답변 해 주셔서 감사합니다! 나는 조금 전에 Bohdan의 답변을 선택했기 때문에 Bohdan의 답변을 선택했다. + – hade