Eine "Teilvorlage" ist eine Ansichtsdatei, die auf mehreren Seiten gemeinsam verwendet werden kann. Durch Kombinieren des Codes, der in mehreren Dateien dupliziert wurde, zu einer Datei müssen Sie ihn zum Zeitpunkt der Änderung nur an einer Stelle ändern. Die Codebeschreibung wird reduziert und die Lesbarkeit verbessert.
Das Verfahren ist ungefähr so.
So wie es ist, ist es eine Aufgabe, Duplikate zu finden.
Eine erb-Datei mit einem Unterstrich (_) am Anfang des Dateinamens wird als Teilvorlagendatei erkannt. Dieses Mal betrachten wir die Buchungsfunktion als Teilvorlage. app/views/books/_newform.html.erb
Schneiden Sie das gemeinsame Teil aus und fügen Sie es in die Datei ein. Grundsätzlich verwenden Teilvorlagendateien lokale Variablen (solche ohne @). Dies liegt daran, dass Sie, wenn Sie eine Instanzvariable (die mit @) in der Teilvorlagendatei verwenden und beim Ändern des Namens oder Verhaltens der Instanzvariablen auf der Controllerseite auch die Teilvorlagenseite ändern müssen.
app/views/books/_newform.html.erb
<%= form_for(book) do |f| %>
<div class="field row">
<%= f.label :title %><br>
<%= f.text_field :title, class: "col-xs-3 book_title" %>
</div>
<p></p>
<div class="field row">
<%= f.label :body %><br>
<%= f.text_area :body, class: "col-xs-3 book_body" %>
</div>
<div class="actions row">
<%= f.submit class: "btn btn-primary col-xs-3" %>
</div>
<% end %>
</div>
Beim Aufrufen können Sie wie folgt schreiben. Lassen Sie beim Aufrufen den Unterstrich der Teilvorlage weg.
<%= render [Angeben einer Teilvorlagendatei], [Lokale Variablen]:[Wert zu übergeben] %>
app/views/books/index.html.erb
<%= render 'books/newform', book: @book %>
Recommended Posts