[RUBY] [Rails] Mise en œuvre de "notifier la notification d'une manière ou d'une autre"

J'ai essayé la fonction de notification, mais pour une raison quelconque, cela n'a pas fonctionné. __

Notification de notification

Image from Gyazo ↑ 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.

Définissez des variables dans les actions du contrôleur associé à la vue que vous souhaitez afficher

events_controller.rb


  def index
    @notification = Notification.all
  end

Obtenez des informations dans le tableau des notifications.

[Facile] Ajoutez simplement une description à html.erb

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.

Remarques

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

[Rails] Mise en œuvre de "notifier la notification d'une manière ou d'une autre"
Implémentation de la suppression d'ajax dans Rails
[Rails] Implémentation de la fonction tutoriel
[Rails] Implémentation d'une fonction similaire
Implémentation Java de tri-tree
Implémentation de HashMap avec kotlin
Mise en place de la fonction de tri des rails (affichés par ordre de nombre de like)
[Rails] Implémentation de la suppression logique utilisateur
[Rails] Implémentation de la fonction d'importation CSV
[Rails] Implémentation asynchrone de la fonction similaire
[rails] Implémentation de l'écran de connexion dans la devise
[Rails] Implémentation de la fonction de prévisualisation d'image
[Rails] Implémentation de la fonction de retrait utilisateur
[Rails] Implémentation de la fonction d'exportation CSV
[Rails] Implémentation de fonctions de catégorie plusieurs à plusieurs
Implémentation d'une fonction similaire en Java
[Rails] Implémentation d'une nouvelle fonction d'enregistrement au format assistant à l'aide de devise
Implémentation de DBlayer en Java (RDB, MySQL)
L'identité des paramètres de rails [: id]
Implémentation du traitement asynchrone compatible multi-tenant dans Tomcat
[rails] Liste des actions définies dans Controller
Rails [Pour les débutants] Implémentation de la fonction de commentaire
[Ruby on rails] Implémentation d'une fonction similaire
[Rails] Mise en œuvre de la validation qui maintient l'unicité
[Rails] Implémentation de la fonction de recherche en utilisant le ransack de gem
[Order method] Définit l'ordre des données dans Rails
Implémentation de la fonction de connexion Ruby on Rails (Session)
Un moyen simple de créer une implémentation de java.util.stream.Stream
[Rails] Implémentation de la fonction d'agrandissement d'image à l'aide de lightbox2
Implémentation du regroupement de chiffres dans l'application Furima
Mémo d'implémentation SKStoreReviewController dans l'interface utilisateur Swift d'iOS14
Recommandation de classe de service dans Ruby on Rails
Comment utiliser JQuery dans Rails 6 js.erb
[Rails] Mise en œuvre du classement des nombres PV à l'aide de l'impressionniste
[Rails] Implémentation du diaporama d'images à l'aide de Bootstrap 3
Fonction de notification simple dans Rails (uniquement lorsqu'elle est suivie)
[Rails] Classement et pagination par J'aime
Group_by dans Rails
[Rails] Fonction de notification
Certains styles d'écriture répétitive subtilement différents dans la vue Rails
[Rails] Implémentation de la fonction glisser-déposer (avec effet)
Implémentation du traitement asynchrone pour un seul locataire dans Tomcat
Implémentation de la fonction de connexion Ruby on Rails (édition de devise)
[Rails] Implémentation de la fonction de catégorie multicouche en utilisant l'ascendance "Préparation"
[Rails] Implémentation de la fonction de catégorie multicouche à l'aide de l'ascendance "seed edition"
Implémentation de calendrier simple de Rails Gem et branchement conditionnel
SSL dans l'environnement local de Docker / Rails / puma
Organiser les publications par ordre de likes sur Rails (classement)