[RAILS] Undefinierter lokaler Variablen- oder Methodenfehler mit teilweiser Vorlagenerfassungsoption

Zweck des Artikels

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

Fehler bei der Erfassungsoption

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}"

Ändern Sie die Teilzielvariable (Lösung ①)

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}"

Geben Sie die Variable in der Ansichtsdatei an, die teilweise aufgerufen werden soll (Lösung 2).

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"

Zusammenfassung

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

Undefinierter lokaler Variablen- oder Methodenfehler mit teilweiser Vorlagenerfassungsoption
Bei Verwendung von Slim mit Ruby on Rails wird in form_with "undefinierte lokale Variable oder Methode` f'for" angezeigt
Ich erhalte eine Fehlermeldung bei der Bundle-Installation und Puma kann nicht installiert werden.
Undefinierter lokaler Variablen- oder Methodenfehler mit teilweiser Vorlagenerfassungsoption
Ich habe in RSpec den Fehler "undefined method` create '" erhalten