2012-06-15 95 views
7

嘗試與ID排序(和分頁)來搜索IM從日誌中獲得(和版本):Ruby on Rails的訂單來自序號

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

我目前使用此代碼:

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

問題是,檢索的列表沒有通過id降序正確排序。

順便說一句我正在使用audited-activerecord gem進行審計,這有什麼關係嗎?

+1

看來,這種寶石內部通過的版本,在模型中寫入default_scope排序。嘗試在gem文檔中搜索,如果可以禁用某些模型的default_scope。 – MurifoX

回答

12

我猜你的寶石設置默認範圍內的審計模式,通過訂單版本,所以目前它按版本列的升序進行排序,並且只有兩個記錄相同時,它是按降序排序的。

爲了解決這個問題,你可以在前面加上unscoped到您的鏈條:

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」。 –