Ruby: v2.5.7 Rails: v5.2.4.4 gem slim: v4.1.0
= form_with model:@team, local:true do |f|
= render 'layouts/error_message', model: f.object
.input
= f.label :name
= f.text_field :name
.input
= f.label :introduction
= f.text_area :introduction
= f.submit
Dieses Mal habe ich "slim" eingeführt, eines der Juwelen von Ruby on Rails, aber ich habe sofort einen Fehler erhalten.
Der Inhalt ist![Screenshot 2020-10-11 12.24.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613376/1675190f-a192-b820 -8887-b51b14351f45.png)
Mit NameError
undefined local variable or method f' for #<#<Class:0x00007fef406b53c8>:0x00007fef35880668>
Dies bedeutet, dass das angegebene f nicht definiert ist. Obwohl die in form_with beschriebene Blockvariable f ... Ich fragte mich, ob es eine Möglichkeit gab, form_with einzigartig für slim zu schreiben, also recherchierte ich verschiedene Dinge. Als Ergebnis wurde es durch Korrigieren wie folgt gelöst.
= form_with model: @team, local: true do |f|
/Der Einzug wurde um jeweils einen Absatz verschoben
= render 'layouts/error_message', model: f.object
.input
= f.label :name
= f.text_field :name
.input
= f.label :introduction
= f.text_area :introduction
= f.submit
Es war eine Einrückung ... es ist einfach zu verstehen ...
Ich brauchte kein "end" oder "()", also habe ich mich gefragt, wie ich den Anwendungsbereich von form_with bestimmen kann, aber es wird durch Einrückung identifiziert. Das war's... Ich habe durch diesen Fehler bemerkt. Lol
Es ist eine einfache Sache, aber ich bin süchtig danach, also werde ich es posten.
Trotzdem ist es gewöhnungsbedürftig, aber selbst wenn Sie nicht einige Beschreibungen und Klammern benötigen, wird die Beschreibung erheblich vereinfacht und der Code ist leicht zu schreiben und leicht zu lesen. Außerdem scheint das Rendern etwas schneller zu sein, also ist es nur ein guter Punkt, schlank.
Recommended Posts