Da ich ein Anfänger bin, würde ich es begrüßen, wenn Sie auf Fehler hinweisen könnten. Gepostet für Memorandum- und Ausgabezwecke.
Wenn Sie mit der Teilvorlage nicht vertraut sind, ist dieser Artikel leicht zu verstehen. https://pikawaka.com/rails/partial_template#collection%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3
Der Code, der den Fehler verursacht.
show.html.schlank (Datei ruft teilweise Vorlage auf)
= render partial: 'reviews/user_review', collection: @reviews
Aus meiner Sicht erwarte ich, dass jedes Element von @reviews der Überprüfung des folgenden Teilvorlagenziels zugewiesen wird. Ich erhalte jedoch die Fehlermeldung, dass die Überprüfung wie unten gezeigt undefiniert ist. Der Wert wurde nicht übergeben.
ActionView::Template::Error (undefined local variable or method `review' for #<#<Class:0x00007fe1e3474948>:0x00007fe1df516738> Did you mean? @reviews):
_user_review.slim(Teilvorlage)
= "#{review.purpose}"
Bei der Prüfung ist die lokale Variable diejenige, die durch: partiell angegeben wird. In diesem Fall muss user_review in der Teilvorlage definiert und nicht überprüft werden. Dies wird sicher angezeigt.
show.html.schlank (Teilschablone)
= "#{user_review.purpose}"
Wie in Lösung (1) erwähnt, sollte die lokale Variable wie folgt angegeben werden: teilweise. Wenn Sie jedoch die lokale Variable mit einem anderen Namen verwenden möchten, verwenden Sie die Option as. Wenn Sie in diesem Fall möchten, dass die im Teilvorlagenziel verwendete Variable die ursprünglich festgelegte Überprüfung ist, geben Sie die Überprüfung mit der Option as in der Ansichtsdatei des Aufrufers an (siehe unten). Dies wird sicher angezeigt.
show.html.schlank (Teilschablone)
= render partial: 'reviews/user_review', collection: @reviews, as: "review"
In der ersten Schreibweise wird diejenige mit demselben Namen wie die Teilvorlage als Variable in der Ansichtsdatei definiert. Wenn Sie eine Variable verwenden möchten, die nicht der Name der Teilvorlage in der Teilvorlage ist, geben Sie diese mit der Option as an.
Recommended Posts