2013-04-24 83 views
6

我想在展示視圖中顯示最近發佈的帖子,以及側邊欄中最近發佈的五篇帖子。Rails:顯示除最近發佈的帖子之外的最近發佈的5篇帖子

目前,我展示了最近發佈的帖子,但側邊欄包含了與接下來的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--> 

非常感謝。

回答

11

偏移是你想要什麼:

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

這將返回崗位2-5,如果你想2-6再使用限制(5)

+0

謝謝。這工作很好。 – user2299459 2013-04-24 17:10:21

+1

比切片更好,更清晰!我學到了一些東西。 – Fred 2013-04-24 17:10:27

0

由於他們是有序的最新到最舊,儘量

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