2016-07-12 7 views
0

내 앱에서 has_many 연관에서 데이터를 가져 오는 쿼리를 앱 전체에서 사용하기 위해 명명 된 범위를 만들고 싶습니다. 같은 연결을 포함별칭으로 레일스에서 ​​조인하는 방법 2.3

다음
Mysql::Error: Not unique table/alias: 'foo' 

내 이름 범위는 모습입니다 MySQL의 오류로 이어지는 : 어떻게 내 업데이트 할 수 있습니다

named_scope :single_foo, :joins => :foo, :group => "foo.blip_id", :having => "count(foo.blip_id) = 1" 

: 수 있도록 문을 조인 나는 때 다른 곳에서 내가 문제로 실행 다음과 같은 쿼리에서 foo에 대한 별칭이 있으므로 고유 테이블 오류가 없습니다.

Blip.single_foo.find(:all, :include => [ :foo ], :conditions => (......)) 

또한, 보너스 포인트는 누군가가 내가 단지 하나의 푸를 일시적를 선택하려면, 간단한라는 이름의 범위에 나를 인도 할 수 있습니다.

답변

0

별명을 지정할 필요가 없습니다. : include => [: foo]는 single_foo 명명 된 범위의 : joins 호출에 이미 포함되어 있으므로 이후 쿼리에서 제거 할 수 있습니다. 그래서 내가해야 할 질문이 이것이었습니다.

Blip.single_foo.find(:all, :conditions => (......))