2009-10-18 5 views
4

최신 열망로드는 여러 쿼리를 사용하여 연결을로드합니다. 추가 열망하는로드 쿼리에 조건을 추가 할 수 있습니까? 예 : bakers을 선택조건으로 열심히로드

* (bakers이 IN을 .bakery_id (1,2,3,4,5)) bakers

FROM :

Bakery.find(:all, :include => :bakers)

이 유사한 열망 로딩 쿼리를 생성합니다.

열망하는로드 쿼리에 조건을 추가 할 수 있습니까?

업데이트 : 에 (아마도)이 명확하게, 나는 AR (산세의 SQL)를 복제하고자하고있는 쿼리는 다음과 같습니다 bakeries FROM

SELECT * 좌 bakeries.id ON bakers = 빵 굽는 가입하세요. bakery_id 특히

'에'bakers.hat =, 내가 할 두 번째 열망로드 된 SQL 문을 수정 할 수 있도록 기대했다 :.

bakers을 SELECT * bakers 곳에서 (bakers .bakery_id IN (1,2,3,4,5) AND bakers .hat = 'on')

가능합니까, 아니면 SQL을 사용해야합니까? 그냥 "레일"방법을 찾고. :)

답변

1

음, 특히 관련 검색어를 변경하고 싶습니까?

당신은 확실히이 somethinglike 수행 할 수 있습니다 우리가 좀 더 많은 정보를 가지고 있다면

Bakery.find(:all, :include => :bakers, :conditions => ["bakers.something = ?", true]) 

이 그것을 할 수있는 더 좋은 방법이 될 수있다. 당신이 무엇을 찾고 있는지에 따라 같이 함께하는 당신이 할 수있는 체인, named_scope s의에보고 할 수 있습니다 :

Bakery.bakers.available 

named_scope가 멋지다.

+0

답장을 보내 주셔서 감사합니다. 나는 이것을 시도했지만 조인을 수행하고 제공되는 조건에 맞는 제과점 만있는 빵집 만 반환합니다. 제가 원했던 것은 특정 베이커들만 열심히 구운 채 모든 빵집을 사주는 것입니다. 기본적으로이 두 가지 쿼리에 대해 열망하는로드 된 : bakeries = Bakery.find (: all); – Jay

+0

더 많은 것을 추가하기 위해, 나는 현재 Bakery.find (: all)를 사용하고 있으며, 제 견해로는 각 베이커리에 대해, 사용중 : bakery.bakers.find (: all, : conditions => {: hat => 'on'}). 이를 수행하는 방법을 찾고 있지만 모든 추가 쿼리가 필요하지 않습니다. – Jay

+0

설명 주셔서 감사합니다. 필요한 것을 정확히 얻을 수있는 방법이 있는지 완전히 확신 할 수는 없습니다. 어쩌면 두 개의 named_scopes를 가지고 놀고 그것이 필요한 것을하는지 보아라. 그러나 나는 그렇게하지 않을 것 같은 느낌이 든다. –

관련 문제