В моем приложении пользователь может иметь группу с множеством предупреждений. Когда создается предупреждение, оно имеет атрибут t.boolean "read", default: false
, который я хочу установить в true, как только пользователи его увидят.
У меня есть следующее:
groups_controller.rb
class GroupsController < ApplicationController
def index
@groups = current_user.groups.includes(:alerts, :new_alerts)
end
end
index. html .erb
<% @groups.each do |group| %>
<% group.alerts.limit(5).each do |alert| %>
<% if alert.unread? %>
<span class="badge pending-status">New</span>
<% end %>
...
<% end %>
<% end %>
И в show. html .erb в группе я показываю все оповещения. Я хочу знать, можно ли пометить эти 5 в index. html .erb как прочитанные после их загрузки в представление? Поэтому, если у меня 5 предупреждений и 3 непрочитанных, я хочу, чтобы 3 отображались как Новые, но как только страница обновится sh или show. html .erb , они будут показывал чтение.
Есть предложения?
Я возился с идеей иметь вместо этого атрибут read как целое число со значением по умолчанию 0 и при первой загрузке alert.update(read: 1)
и тогда предупреждения с read > 2
будут непрочитанными.
Что вы думаете об этом?