2011-12-05 49 views
0

我對使用Ruby on Rails很新穎。 我創建了一個名爲「上崗」的博客,我想我的主頁顯示2項最新...顯示選定數量的博客條目

我到目前爲止已經得到它使用

<% @posts.each do |post| %> 

顯示所有博客文章,但我如何修改這個只顯示最新的2?

非常感謝。

回答

3
@posts = Post.order('created_at desc').limit(2) 
+0

這似乎並不工作恐怕 – howardrocks

+0

我「你有一個零對象時,你沒想到吧! 你可能期望陣列的一個實例。 在評估nil.each發生錯誤」錯誤,我應該將「@post」更改爲「@posts」。現在工作正常!非常感謝。 – howardrocks

+0

是的,那確實是一個錯字。修復。 – nathanvda

2

假設你在你的控制器類似@posts = Post.all,你僅需要做,而不是以下:

@posts = Post.last(2) 
+0

這當然工作,但是在我的控制器實際上我 @posts =帖子.all(:order =>「created_at DESC」) 以便博客條目以時間相關的方式出現。 有沒有辦法將(:order =>「created_at DESC」)與您的解決方案相結合? (我嘗試過,但沒有運氣) – howardrocks

+0

然後你會做'@posts = Post.last(2).order('created_at DESC')''。 – tbuehlmann

+0

沒有冒犯,但這將會完全相反。很顯然,使用最後一個明確的順序是違反直覺的,因爲你應該扭轉想要的順序。 – nathanvda