2009-09-29 3 views
1

ActiveRecord :include을 제한하여 하나의 레코드 만 가져올 수 있습니까?레일 옵션에 포함됨

Item.find(:all, 
    :include => [ :external_ratings, :photos => LIMIT 1 ]) 

나는 항목 목록을 가지고 있으며, 각 항목은 5-15 장의 사진이 있습니다. 사진 ID를 메모리에로드하고 싶지만 그 중 일부는 필요하지 않습니다. 나는 단지 첫 번째 것을 미리보고 싶다.

ActiveRecord로이를 수행 할 방법이 있습니까?

답변

0

나는 그것을 직접 할 수는 없다고 생각하지만, 하나의 레코드를 찾는 것이 단일 쿼리 일 뿐이므로 포함하지 않는 것이 어떨까요?

예컨대

first_photo = Photo.find(records.first.photo_id) 

후 메인 find

+0

이것이 제대로 작동 할 것이라고 확신하지만, 50 개의 항목이 있다면 50 가지의 다른 시간을 사용해야합니다. 그것은 include와 함께 지금은 잘 작동합니다, 그것은 단지 내가 필요로하는 것보다 더 많은 정보를 메모리에 저장하고 있습니다. ;-( – holden

+0

질문에 원하는 것을 명확히 할 수 있습니까? 1record 또는 50을 원하지만 수행하려는 것이 명확하지 않습니다 . – DanSingerman

+0

죄송합니다. 조금 변경했는데 기본적으로 목록을 가져오고 있습니다. 각 항목에는 여러 개의 이미지와 등급이 있습니다. 모든 등급을 포함 시키길 원하지만 각 항목마다 하나의 이미지 만 필요합니다 (기본적으로 미리보기). – holden

0

I는 상세 쿼리를 조사하지 않을거야,하지만 난 find_by_sql을 생각하고이 특정 사건에 대한 순서입니다.

관련 문제