[RUBY] [Rails] Implementierung von "Benachrichtigung auf irgendeine Weise benachrichtigen"

Ich habe die Benachrichtigungsfunktion ausprobiert, aber aus irgendeinem Grund hat sie nicht funktioniert. __ __

Benachrichtigung Benachrichtigung

Image from Gyazo ↑ Wenn es eine solche ungelesene Benachrichtigung gibt, wie man so etwas wie das Hinzufügen eines roten Punkts implementiert, ohne Javascript oder die Aktion der Hilfsdatei zu verwenden.

Wenn Sie die Benachrichtigungsfunktion selbst noch nicht implementiert haben, können Sie sie anhand der folgenden leicht verständlichen Artikel implementieren.

Für diejenigen, die die gleichen Probleme wie ich haben, wie die Herausforderung im obigen Artikel, aber es funktioniert nicht.

Definieren Sie Variablen in den Aktionen des Controllers, die der Ansicht zugeordnet sind, die Sie anzeigen möchten

events_controller.rb


  def index
    @notification = Notification.all
  end

Informationen erhalten Sie in der Benachrichtigungstabelle.

[Einfach] Fügen Sie einfach eine Beschreibung zu html.erb hinzu

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>

■ Erklärung

<% @notification.each do |notification| %>

Verwenden Sie jede Methode, um die im Controller definierte Variable @notification für jede Benachrichtigung zu verarbeiten. Die Blockvariable ist diesmal "Benachrichtigung", aber alles ist in Ordnung.

<% if (notification.visited_id == current_user.id) && notification.checked == false %>
    <span class="material-icons">fiber_manual_record</span>
    <% break %>
<% end %>

Unter Verwendung des if-bedingten Ausdrucks lautet "visit_id" (ID des kommentierten Benutzers) "current_user.id" (ID des aktuell angemeldeten Benutzers). Wenn der Wert von "notification_checked" (aktivierte Spalte der Benachrichtigungstabelle) falsch (ungelesen) ist, wird die folgende Verarbeitung ausgeführt.

Beachten Sie, dass der Vorgang so oft wiederholt wird, wie Sie benachrichtigt werden, wenn Sie ihn nicht auf "break" setzen.

das ist alles. Egal wie oft ich es ausprobiert habe, es hat nicht funktioniert, also habe ich es auf meine eigene Weise arrangiert.

Bemerkungen

current_user.id ist eine Hilfsmethode, die verwendet werden kann, indem gem'devise 'eingeführt wird, um den angemeldeten Benutzer abzurufen. Es ist jedoch in Ordnung, wenn Sie die ID des angemeldeten Benutzers abrufen können.

__ Informationen zur Einführung von Materialsymbolen finden Sie im folgenden Artikel __

Recommended Posts

[Rails] Implementierung von "Benachrichtigung auf irgendeine Weise benachrichtigen"
Implementierung der Ajax-Entfernung in Rails
[Rails] Implementierung der Tutorial-Funktion
[Rails] Implementierung einer ähnlichen Funktion
Java-Implementierung von Tri-Tree
Implementierung von HashMap mit Kotlin
Implementierung der Rails-Sortierfunktion (angezeigt in der Reihenfolge der Anzahl der Gleichen)
[Rails] Implementierung des logischen Löschens durch den Benutzer
[Rails] Implementierung der CSV-Importfunktion
[Rails] Asynchrone Implementierung der Like-Funktion
[Rails] Implementierung des Anmeldebildschirms in Devise
[Rails] Implementierung der Bildvorschau
[Rails] Implementierung der Benutzerrückzugsfunktion
[Rails] Implementierung der CSV-Exportfunktion
[Rails] Implementierung von Viele-zu-Viele-Kategoriefunktionen
Implementierung einer ähnlichen Funktion in Java
[Rails] Implementierung einer neuen Registrierungsfunktion im Assistentenformat mit devise
Implementierung von DBlayer in Java (RDB, MySQL)
Die Identität der Schienenparameter [: id]
Implementierung einer mandantenfähigen kompatiblen asynchronen Verarbeitung in Tomcat
[Rails] Liste der in Controller definierten Aktionen
Rails [Für Anfänger] Implementierung der Kommentarfunktion
[Ruby on Rails] Implementierung einer ähnlichen Funktion
[Rails] Implementierung einer Validierung, die die Eindeutigkeit beibehält
[Rails] Implementierung der Suchfunktion mit Gem's Ransack
[Bestellmethode] Legen Sie die Reihenfolge der Daten in Rails fest
Implementierung der Ruby on Rails-Anmeldefunktion (Sitzung)
Einfache Möglichkeit, eine Implementierung von java.util.stream.Stream zu erstellen
[Rails] Implementierung der Bildvergrößerungsfunktion mit Lightbox2
Implementierung der Zifferngruppierung in der Furima App
Implementierungsnotiz für SKStoreReviewController in der Swift-Benutzeroberfläche von iOS14
Empfehlung der Serviceklasse in Ruby on Rails
Verwendung von JQuery in Rails 6 js.erb
[Rails] Implementierung des PV-Nummernrankings mit Impressionist
[Rails] Implementierung einer Bild-Diashow mit Bootstrap 3
Einfache Benachrichtigungsfunktion in Rails (nur wenn befolgt)
[Rails] Rangfolge und Paginierung in der Reihenfolge der Likes
Group_by in Rails
[Rails] Benachrichtigungsfunktion
Einige subtil unterschiedliche sich wiederholende Schreibstile in der Rails-Ansicht
[Rails] Implementierung der Drag & Drop-Funktion (mit Wirkung)
Implementierung der asynchronen Verarbeitung für einen einzelnen Mandanten in Tomcat
Implementierung der Ruby on Rails-Anmeldefunktion (Devise Edition)
[Rails] Implementierung einer mehrschichtigen Kategoriefunktion unter Verwendung der Abstammung "Vorbereitung"
[Rails] Implementierung einer mehrschichtigen Kategoriefunktion unter Verwendung der "Seed Edition" der Vorfahren
Kalenderimplementierung und bedingte Verzweigung im einfachen Kalender von Rails Gem
SSL in der lokalen Umgebung von Docker / Rails / Puma
Ordne die Beiträge in der Reihenfolge ihrer Likes auf Rails an (Rangfolge)