有什麼方法可以在find方法中使用:limit和:order選項。我試圖按降序對活動進行排序,以顯示最新的活動。但是,當我嘗試使用(:all,:limit => 5,:order =>'Date desc)時,出現錯誤。我需要限制到只有5條記錄,當我不顧命令選項,它的工作原理,但不是我所需要...使用:order和:limit選項 - Ruby On Rails
感謝
有什麼方法可以在find方法中使用:limit和:order選項。我試圖按降序對活動進行排序,以顯示最新的活動。但是,當我嘗試使用(:all,:limit => 5,:order =>'Date desc)時,出現錯誤。我需要限制到只有5條記錄,當我不顧命令選項,它的工作原理,但不是我所需要...使用:order和:limit選項 - Ruby On Rails
感謝
我想你錯過在你的例子報價。
Model.find(:全部:極限=> 5:爲了=> 'created_at遞減')
確保日期列在表中。
您的日期欄實際上是否被稱爲date
?首先,我會改變這種情況,日期是大多數數據庫中函數的名稱,這可能是導致錯誤的原因。 Rails使用created_at
,updated_at
等,因此遵循該命名方案將使您的代碼對未來的維護人員更具可讀性。
你可以嘗試在反單引號引用的列名:
:order => "`date` desc"
不幸的是,這個問題與日期列沒有關係,它在我不使用:limit選項時完美工作,它按日期降序排序。我知道列名不可取,但現在無法更改。 限制選項在沒有訂單選項時使用,反之亦然 – user211662 2009-11-16 02:23:25
您可以發佈SQL試圖執行的日誌嗎? – 2009-11-16 13:48:39
我試過,但我得到這個錯誤 在以下位置BY子句中的次序表達,或啓動與「ORDER BY」子句中的「DATE」無效。原因代碼=「2」。 SQLSTATE = 42822 – user211662 2009-11-15 23:01:34
它可能不被稱爲「日期」。嘗試「日期」,「created_at」或「updated_at」。 – dylanfm 2009-11-16 01:11:44