2012-06-15 16 views
7

im günlüğünden elde id sıralama (ve Sayfalara ayırma) ile arama çalışırken (ve sürüm?):Ruby on Rails sipariş kimliğine göre

@records = Audit.order("id DESC").page(page).per(50) 
: Şu anda bu kodu kullanıyorum

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

Sorun, alınan listenin kimlik doğrulamasıyla doğru şekilde sıralanmadığıdır.

BTW denetimler için denetlenmiş-activerecord gem kullanıyorum, bu sorun mu var?

+1

. Bazı modellerde bu default_scope'u devre dışı bırakabilirseniz mücevher belgelerinde aramayı deneyin. – MurifoX

cevap

12

sorguya eklendi kaldırmalısınız Şu anda, sürüm sütunu tarafından artan sırada sipariş veriyor ve yalnızca iki kayıt aynı ise, azalan sırada id olarak sipariş veriyor.

Bunu düzeltmek için, zincire unscoped başa ekleyebilir: taş içten Modellerinizde sürümü tarafından bir default_scope sipariş yazıyor görünür

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

deneyin:

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

except('order') herhangi bir sipariş ilişkileri o yüzden senin mücevher Denetim modeline sürümü tarafından bu emir varsayılan ayar kapsamında olduğunu tahmin ediyorum

+1

İlginç, 'daha önce' dışında bir şey bilmiyordu. –