2011-10-09 61 views
5

我有一個模型,可以從我的客戶每年的每個日曆季度收集財務數據(例如:對於任何給定年份,季度1,2,3和4)。爲簡單起見,該模型稱爲季度並具有:client_id,:quarter,:year和:amount屬性。我希望能夠根據當前顯示的季度查詢和顯示:amount屬性的最後四個條目。例如,如果我在看:2011年第3季度,那麼我想顯示:本季度的金額(這很容易),以及:金額爲:第2季度& 1:2011年,以及:季度4:2010年。這有道理嗎?Rails 3-檢索最近的N條記錄

我通過爲每個要檢索的記錄分配一個不同的變量,然後使用elsif語句來找到它,但我知道必須有一種更乾淨的方式才能做到這一點。

我該怎麼做?

回答

7

與Rails 2.x的查詢界面的答案是:

Quarter.find(:all, :order => :year, :limit => 4).reverse 

與Rails 3.x的查詢界面的答案是:

Quarter.order(:by => :year).limit(4).reverse 

BTW。我認爲您不應該將數據存儲在稱爲「Quarter」的模型中,而應該存儲在名爲「FinancialData」的模型中,並且該模型具有屬性「quarter」,其中包含2011/1,2011/2或havt兩個屬性:一年:其中四分之一需要索引一起

參見:

http://guides.rubyonrails.org/active_record_querying.html

http://m.onkey.org/active-record-query-interface

+0

冷靜的人,謝謝。對不起,我在這方面真的很新穎,那麼我怎麼會在我看來只顯示:amount屬性的條目呢? – FattRyan

+0

檢查這個網站:http://railscasts.com/ - 它有真正有用的劇集 - 一些在初學者水平,一些在高級水平。也許在那裏搜索「查看」。 – Tilo

+0

再次感謝蒂洛。我所做的只是在控制器中爲此查詢分配一個變量,如下所示:@lastfouritems = query,然後在我的視圖中顯示該變量。它所做的是在龐大的列表中顯示我的模型的所有屬性,而不僅僅是:amount屬性。我如何隔離這一個屬性,只顯示? – FattRyan

6

要檢索最後N個記錄:

Quarter.last(n).reverse 
+0

這適用於Rails 4及更高版本 – SsouLlesS

1
User.all.order("id desc").limit(40)