我想在展示视图中显示最近的帖子,边栏中有下五个最近的帖子。
目前,我会展示最新的帖子,但侧边栏包含相同的帖子以及接下来的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-->
非常感谢。
答案 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)