[RAILS] Informationen zur Fehlerbehandlung der Kommentarfunktion

Einführung

Rails 6.0.3.4

Ich bin während der Implementierung der Fehlerbehandlung der Kommentarfunktion gestolpert, daher werde ich sie hier aufzeichnen.

Ich erstelle eine Website zum Veröffentlichen von Rezepten, und wenn ich die Details des Rezepts eingebe, gibt es eine Kommentarfunktion und eine Kommentarliste. Der Name des Benutzers, der den Kommentar gepostet hat, ist ebenfalls enthalten. Kommentar Es wird davon ausgegangen, dass die Ansicht, in der der Kommentar zum Modellcontroller angezeigt wird, abgeschlossen ist. Beim Routing sind Kommentare im Rezept verschachtelt.

Validierung erstellen

class Comment < ApplicationRecord
  belongs_to :recipe
  belongs_to :user
  validates :contents, presence: true, length: { maximum: 100 }
end

Es sieht aus wie das. Inhalt ist der Spaltenname, der den Kommentarinhalt enthält. Die Validierung des Inhalts besteht darin, dass Sie nicht in das leere Feld posten können und dass es maximal 100 Zeichen umfasst.

Kommentare Controller bearbeiten

class CommentsController < ApplicationController

  def create
    @recipe = Recipe.find(params[:recipe_id]) #Definieren Sie, welches Rezept zugeordnet ist
    @comment = Comment.new(comment_params) #Erstellen Sie eine leere Instanz (vergessen Sie nicht die starken Parameter)
    if @comment.save #Wenn Sie den Kommentar speichern können
      redirect_to recipe_path(@comment.recipe.id) #Sie kehren zur Rezeptliste zurück. Lassen Sie uns dem Rückweg sagen, um welche Rezept-ID es sich handelt. Weil wir uns [email protected] mit ID
    else #Wenn Sie es nicht speichern können (wenn es validiert ist)
      @comments = @recipe.comments.includes(:user) #Für Kommentare zeigen Sie die Kommentare an (ich habe hier nicht geschrieben)
       render 'recipes/show' #Kehren Sie zur Rezeptliste zurück
    end
  end

  private

  def comment_params
Abkürzung
  end
end

Wenn es nicht gespeichert wird, stellen Sie es vorerst einfach mit Render wieder her! Ich habe nur Rendern geschrieben. Wenn ich dies tue, erhalte ich jedoch eine Fehlermeldung, aber ich erhalte die Fehlermeldung, dass die bisherigen Kommentare aus der Liste verschwinden.

Beim Rendern wird die Ansicht zunächst direkt angezeigt. Es geht nicht durch die Steuerung. Mit anderen Worten, es geht um das Rendern von Rezepten / Shows ohne die Definition von @comments. Was ist @comments in der Rezeptliste (Rezepte / Show-Ansicht) geschrieben? Es scheint, dass es war. Definieren wir also @comments, bevor wir mit render zur Ansicht zurückkehren.

Aussicht

Ich werde es für alle Fälle beiseite legen.

<div class="comment-box">
    <% if @comments %>
      <% @comments.each do |comment| %>← Hier@Bemerkungen
        <p>
        <strong><%= comment.user.nickname %>:</strong>
        <%= comment.contents %>
        </p>
      <% end %>
    <% end %>
  </div>

Recommended Posts

Informationen zur Fehlerbehandlung der Kommentarfunktion
Über den Umgang mit Null
[Rails] Über die Implementierung der Like-Funktion
[Rails] Hinzufügen der Ruby On Rails-Kommentarfunktion
Keine qualifizierende Bean vom Typ Fehlerbehebung
Rails [Für Anfänger] Implementierung der Kommentarfunktion
Informationen zur Ausnahmebehandlung
Informationen zur Ausnahmebehandlung
Kommentarfunktion implementiert
Über keinen Methodenfehler
Informationen zur Behandlung von Ruby-Ausnahmen
Informationen zum Trennen () von HttpURLConnection
Über die Doppelfunktion -java
Implementierung der Kommentarfunktion (Ajax)
Über die Auswahl von OpenJDK
Implementierung der Suchfunktion
Über DI des Frühlings ①
Über DI des Frühlings ②
Implementierung der Pagenationsfunktion
Fehlerbehandlung mit Graphql-Ruby
Informationen zum Formular. ○○ von form_with
Informationen zur Implementierung der Zusammenführungsverarbeitung einschließlich der Sortierfunktion der Stream-API
Über die Funktion von Spring Boot aufgrund unterschiedlicher Versionen
Ein Hinweis zum Seed-Feature von Ruby on Rails
Verhalten von Files.copy (pathA, pathB) zum Zeitpunkt des Fehlers
Hinzufügung der Gastanmeldefunktion
Über Java-Instanzen
[Java] Praxis der Ausnahmebehandlung [Ausnahme]
Implementierung der sequentiellen Suchfunktion
Über die einfache Bedienung von Docker
Informationen zum Spring Framework-Kontextfehler
Informationen zur Beschreibung von Docker-compose.yml
[Java] Informationen zur Behandlung von Try-Catch-Ausnahmen
Implementierung einer ähnlichen Funktion (Ajax)
Implementierung der Bildvorschau
Über Größenvergleich von compareTo
Informationen zu Arten der Codeabdeckung
[Rails] Implementierung der Kategoriefunktion
Implementierung der Kategorie-Pulldown-Funktion
Memorandum über LOD.
[Rails] Implementierung der Tutorial-Funktion
[Rails] Implementierung einer ähnlichen Funktion
Kommentarfunktion zur App-Erstellung asynchron
Informationen zum Hinzufügen einer ähnlichen Funktion
Zusammenfassung der Java-Fehlerverarbeitung
Über teilweise Übereinstimmung des Selektors
[Rails] Über Uglifier :: Fehler: Unerwartetes Token: Zum Zeitpunkt der Bereitstellung