2011-08-09 5 views
0

다른 테이블을 참조하는 필드를 기준으로 정렬을 수행하고 있습니다 (그리고 다른 테이블의 '이름'필드에서 정렬). 문제는 첫 번째 개체 집합에 다른 개체에 대한 참조가없는 항목이있을 때 해당 항목이 정렬에서 제외된다는 것입니다.RoR : 검색 논리 : 기본 왼쪽 내부 조인 대신 왼쪽 조인을 수행하려면 어떻게해야합니까?

그래서 간단히 말해 다른 테이블에 대한 참조 (및 해당 테이블의 열에 대한 정렬)가있는 열이 있지만 null 참조도 포함하고 싶습니다.

답변

1

나는 나는 100 % 내가 당신의 질문을 이해하지만, 당신이 named_scope을 쓸 때 예를 들어, 다음과 같은 옵션을 전달할 수 있는지 :

named_scope descend_it_by_that_other_column, 
:select => "", 
:joins => "LEFT JOIN ...", 
:conditions => "..." 

또 다른 예 :

def my_fancy_method_returning_things 
association_name.all :limit => 5, :joins => 'LEFT JOIN ... ON ... = ...', :order => ...' 
end 
+0

를 아, I를 명명 된 범위를 재정의하는 것을 생각하지 않았습니다. 나는 그것을 조금만 시도 할 것이다. 감사. – NullVoxPopuli

+1

searchlogic을 사용하고 params에 다음과 같이 입력 한 경우 : "search"=> { "order"=> "ascend_by_rating"} 그러면 searchlogic은 정의 된 경우 이름이 지정된 범위의 ascend_by_rating을 사용합니다. 이게 도움이 되길 바란다 :) – socjopata

관련 문제