2012-06-15 6 views
7

메신저 로그에서 점점 ID를 정렬 (및 paginating)를 검색하는 중에 (및 버전?) :루비 레일에 주문 ID로

@records = Audit.order("id DESC").page(page).per(50) 
: 나는 현재이 코드를 사용하고

SELECT `audits`.* FROM `audits` ORDER BY version, id DESC LIMIT 50 OFFSET 0 

검색된 목록이 ID 내림차순으로 올바르게 정렬되지 않는 것이 문제입니다.

현재 감사에 대해 감사 활성 레코드 젬을 사용하고 있습니까?

+1

. 일부 모델의 경우이 default_scope를 비활성화 할 수 있으면 gem 설명서를 검색해보십시오. – MurifoX

답변

12

쿼리에 추가 제거해야합니다 현재 버전 열에 의해 오름차 순으로 정렬되며, 두 레코드가 동일 할 때만 id에 따라 내림차순으로 정렬됩니다.

이 문제를 해결하려면, 당신은 당신의 체인 unscoped 앞에 추가 할 수 있습니다 :이 보석은 내부적으로 모델 버전에 의해 default_scope 순서를 쓰는 나타납니다

Audit.unscoped.order("id DESC").page(page).per(50) 
7

시도 :

@records = Audit.except('order').order("id DESC").page(page).per(50) 

except('order') 임의의 순서 관계는 내가 지금, 당신의 보석은 감사 모델 버전으로 그 주문을 기본 범위를 설정하고 있음을 추측하고있어

+1

흥미 롭다. 전에는 'except'에 대해 몰랐다. –