Как исключить текущий элемент из поиска связанных элементов - PullRequest
0 голосов
/ 19 января 2019

У меня есть просмотр сообщения, в котором я хочу отобразить похожие сообщения, но то, что у меня есть сейчас , включает в себя также текущее сообщение.

Как мне поступить с удалением текущего элемента изпоиск?

Я не знаю, как использовать 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)

Ответы [ 2 ]

0 голосов
/ 19 января 2019

@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 %>
0 голосов
/ 19 января 2019

Попробуйте использовать .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)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...