Rails 5: перебрать массив записей и указать новые записи - PullRequest
0 голосов
/ 22 мая 2019

Я перебираю массив записей примерно так:

@products = Product.where(category_id: @categories).order(updated_at: :desc)

<% @products.each do |product| %>
  <%= @product.title %>
  <%= @product.price%>
<% end %>

А теперь я хочу отметить новейшие записи как новые:

<% @products.each do |product| %>
  <% if product.created_at <= product.created_at + 2.days %>
   New release
  <% end %>

  <%= @product.title %>
  <%= @product.price%>
<% end %>

Но вместо того, чтобы проходить через каждый продукт и отмечать, какие из них являются новыми (в соответствии с состоянием if, которое у меня есть), он просто берет первую запись, которая возвращает true в условие if, и помечает все продукты как новые.

Есть идеи, почему это происходит и как я могу это исправить?

1 Ответ

1 голос
/ 22 мая 2019

Ваша логика неверна - эта строка:

if product.created_at <= product.created_at + 2.days

всегда будет верной (вы сравниваете дату с самой собой), поэтому все всегда будет помечено как новый продукт.

Вы имели в виду вместо того, чтобы сравнивать дату созданной_атт с текущей датой?Если вы хотите проверить, был ли продукт создан менее двух дней назад, используйте product.created_at >= 2.days.ago.

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