활성 레코드에서 열심히로드하는 방법에 대해서는 조금 혼란 스럽습니다. Book
모델 Pages
많이 가지고 있는데이 쿼리를 사용하여 책을 가져 말할 수 있습니다 :Rails를 열망하는 데 도움이됩니다.
@book = Book.find book_id, :include => :pages
을 지금은 혼란 스러워요 곳. 제 이해는 @book.pages
이 이미로드되어 있고 다른 쿼리를 실행하지 않는다는 것입니다. 그러나 특정 페이지를 찾고 싶다면 어떻게해야합니까?
@book.pages.find page_id
# OR...
@book.pages.to_ary.find{|p| p.id == page_id}
맞죠 첫 번째 예는 다른 쿼리를 실행합니다 생각, 따라서 열망 로딩 무의미을 만드는, 또는 액티브 레코드가 다른 쿼리를 할 필요가 없다는 것을 알 수있을만큼 영리하다?
또한 내 두 번째 질문은 열심히로드하는 것이 데이터베이스에서 더 집중적인데, 때로는 여러 개의 작은 쿼리가 단일 큰 쿼리보다 효율적이라는 논리가 있습니다.
의견을 보내 주셔서 감사합니다.