我有一个帖子视图,我想在其中显示相关的帖子,但现在我还包括当前帖子。
如何从搜索中删除当前项目?
在这种情况下,我什至不知道如何使用where.not()
或!=
,或者它们甚至不是最好的使用方式。
这就是我在展后视图中看到的东西:
<% @related[@post.blog_category_id]&.each do |rel| %>
<a href="/posts/<%= rel.friendly_id %>" class="img-cont">
<%= image_tag("Index/#{rel.thumbnail_link}", :alt => "#{rel.title}", class: "soundtrack-img top-drop") %>
<div class="img-mdl wellington"><h3 class="img-txt basic"><%= rel.title %></h3></div>
</a>
<% end %>
在我的 posts_controller 显示方法中:
@related = Post.friendly.all.group_by(&:blog_category_id)
答案 0 :(得分:1)
@related
已包含所有帖子,您需要从列表中删除当前帖子或在迭代中跳过它:
在迭代之前排除当前的
<% @related[@post.blog_category_id].reject { |post| post == @post }&.each do |rel| %>
或如果当前帖子是相关帖子,则跳过该迭代:
<% @related[@post.blog_category_id]&.each do |rel| %>
<% next if rel == @post %>
答案 1 :(得分:0)
尝试使用.offset(1)
。像这样:
@related = Post.friendly.all.group_by(&:blog_category_id).offset(1)
或
@related = Post.friendly.all.group_by(&:blog_category_id).order("created_at desc").offset(1)