2011-12-05 44 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