J'ai essayé la fonction de notification, mais pour une raison quelconque, cela n'a pas fonctionné. __
↑ S'il y a une notification non lue comme celle-ci, comment implémenter quelque chose comme l'ajout d'un point rouge sans utiliser javascript ou l'action du fichier d'aide.
Si vous n'avez pas encore implémenté la fonction de notification elle-même, implémentons-la en vous référant aux articles faciles à comprendre suivants!
Pour ceux qui ont les mêmes problèmes que moi, comme le défi de l'article ci-dessus, mais cela ne fonctionne pas.
events_controller.rb
def index
@notification = Notification.all
end
Obtenez des informations dans le tableau des notifications.
event:index.html.erb
<div class="alert-header">
<%= link_to notifications_path do %>
<span class="material-icons" id="alert">notification_important</span>
<% @notification.each do |notification| %>
<% if (notification.visited_id == current_user.id) && notification.checked == false %>
<span class="material-icons" id="on-alert">fiber_manual_record</span>
<% break %>
<% end %>
<% end %>
<% end %>
</div>
■ Explication
<% @notification.each do |notification| %>
Utilisez la méthode each pour traiter la variable @notification définie dans le contrôleur pour chaque notification.
La variable de bloc est "notification" cette fois, mais tout est OK.
<% if (notification.visited_id == current_user.id) && notification.checked == false %>
<span class="material-icons">fiber_manual_record</span>
<% break %>
<% end %>
En utilisant l'expression conditionnelle if, visité_id
(id de l'utilisateur commenté) est current_user.id
(id de l'utilisateur actuellement connecté),
De plus, si la valeur de notification_checked
(colonne vérifiée de la table des notifications) est fausse (non lue), le traitement suivant est effectué.
Notez que si vous ne le définissez pas sur «break», le processus sera répété autant de fois qu'il y a de notifications.
c'est tout. Peu importe le nombre de fois que je l'ai essayé, cela n'a pas fonctionné, alors je l'ai arrangé à ma manière.
current_user.id est une méthode d'assistance qui peut être utilisée en introduisant gem'devise 'pour obtenir l'utilisateur connecté, mais c'est OK si vous pouvez obtenir l'ID de l'utilisateur connecté.
__ Veuillez vous référer à l'article suivant pour l'introduction des icônes matérielles __
Recommended Posts