Rails:显示5个最新帖子,不包括最新帖子

时间:2013-04-24 16:45:18

标签: ruby-on-rails controller views

我想在展示视图中显示最近的帖子,边栏中有下五个最近的帖子。

目前,我会展示最新的帖子,但侧边栏包含相同的帖子以及接下来的4篇最新帖子。

控制器:

def show
  @post = Post.find(params[:id])
  @posts = Post.includes(:comments).order("created_at DESC").limit(5)
end

查看:

<div class="related-articles">
  <h2 class="headline">Related Articles</h2>
    <% @posts.each do |post| %>
      <div class="floatLeft"><%= link_to (image_tag post.image.url(:thumb)), post_path(post) %></div>
      <h2 class="headline smaller-font"><%= link_to post.title, post %></h2>
      <div class="image-remove"><%= raw truncate_html(post.body, length: 190) %>
      <%= link_to "read more", post %></p></div>
      <hr>

<% end %>

</div><!--related articles box--> 

非常感谢。

2 个答案:

答案 0 :(得分:13)

偏移是你想要的:

@posts = Post.includes(:comments).order("created_at desc").limit(4).offset(1)

这将返回帖子2-5,如果你想2-6然后使用limit(5)

答案 1 :(得分:0)

由于它们从最新到最旧订购,请尝试

@posts = Post.includes(:comments).order("created_at DESC").limit(6)
@posts.slice!(0)