2014-10-12 2 views

답변

2

대답은 위의 질문에 링크 된 스레드에서 발견된다. 그것을 여기에 써서 쉽게 찾을 수 있습니다. 분명히 주문 문자열을 다시 작성하고 Null Last을 추가해야합니다. 당신은 당신이 어떤 종류의 parametre이없는 때를 제외해야하지만

@q.result.except(:order).order("#{@q.sorts.first.name} #{@q.sorts.first.dir} NULLS LAST") 

, 그래서 이것은 내 마지막 솔루션입니다 :

이 나를 위해 그것을 해결 (모든 컬럼에서 작동)

@q = Project.ransack(params[:q]) 
@fields = current_user.settings.default_project_fields 
if @q.sorts.present? 
    @result = @q.result.except(:order).order("#{@q.sorts.first.name} #{@q.sorts.first.dir} NULLS LAST") 
else 
    @result = @q.result 
end 
+0

이것은 좋은 해결책이지만 관련 링크를 정렬 할 때 작동하지 않습니다. 정렬 링크의 원시 값을 사용하기 때문에 ... 예를 들어'ORDER BY tasks.created_at'는 'ORDER BY tasks_created_at'가됩니다. 주문 재 작성 – agbodike

+0

@agbodike 관련 레코드를 정렬하는 방법은 무엇입니까? –

+0

아니요,하지만 긴급하지 않은만큼 업무를 연기 했으므로 대안을 찾기에는 너무 많은 시간을 소비하지 않았습니다. – agbodike