· Version 10.15.3 ・ Ruby Ruby 2.6.3p62 ・ Schienen 6.0.3.2
In oben haben wir aufgezeichnet, wie die Datenbank angezeigt wird, die die ID der Datenbank erhalten hat. Hier werden wir als Memorandum aufzeichnen, wie der Inhalt der Datenbank, die aus dem Formular in der Ansicht veröffentlicht wurde, wiedergegeben wird. Rooding ist kompliziert und schwierig ...
Hier gehen wir von der Formularerstellung in der Ansicht aus.
Erstellen Sie ein einfaches Formular für Ihre Ansicht.
erb:app/views/Irgendein/Irgendein.htme.erb
<div class="form">
<label>title: </label>
<input type="text">
<br>
<label>text: </label>
<textarea></textarea>
<input type="submit" value="Post">
</div>
Erstellen Sie das vorherige Formular ↓ Ich habe submit </ strong> festgelegt. Um die im Formular eingegebenen Daten in der Datenbank zu speichern, müssen Sie die Aktion (Controller) ausführen, wenn Sie auf Senden klicken.
erb:app/views/Irgendein/Irgendein.htme.erb
<input type="submit" value="Post">
Füllen Sie die folgenden Routen aus
config/routes.rb
‥
post "Controller-Name/Aktionsname" => "Controller-Name#Aktionsname"
Beispiel ↓
config/routes.rb
‥
post "posts/create" => "posts#create"
config/routes.rb
get "Controller-Name/Aktionsname" => "Controller-Name#Aktionsname"
post "Controller-Name/Aktionsname" => "Controller-Name#Aktionsname"
Es gibt get ・ post </ strong> in den Routen von ↑. Wenn es sich um die Einstellung für das Seitenrouting handelt, ist get in Ordnung.
rb:app/views/.html.erb
<div class="form">
<label>title: </label>
<input type="text">
<br>
<label>text: </label>
<textarea></textarea>
<input type="submit" value="">
</div>
An Aktion senden An Aktion senden Sie müssen die Methode form_tag </ strong> festlegen, um Daten an das Formular zu senden. (form_tag-Methode) Vor dem Setzen von ↓ Beliebiger Beitrag (form_tag-Methode) Nach dem Setzen von ↓
rb:app/views/Irgendein.html.erb
<%= form_tag("/Controller-Name/Aktionsname") do %>
<div class="form">
<label>title: </label>
<input type="text">
<br>
<label>text: </label>
<textarea></textarea>
<input type="submit" value="Post">
</div>
<% end %>
Ich setze es mit <% = form_tag ("/ posts / create") do%> ‥ <% end%> </ strong>. Außerdem wird die form_tag-Methode zu ↓.
rb:app/views/Irgendein.html.erb
<%= form_tag("/Controller-Name/Aktionsname") do %>
wird bearbeitet
<% end %>
In der bisherigen Arbeit ・ Formular erstellen
Verwenden Sie die Methode redirect_to </ strong>, um eine Umleitung einzurichten.
app/controllers/Irgendein_controller.rb
‥
def create
redirect_to("/Controller-Name/Aktionsname")
end
Beispiel ↓
app/controllers/Irgendein_controller.rb
‥
def create
redirect_to("/posts/index")
end
Überprüfen Sie das zuvor festgelegte Formular.
rb:app/views/Irgendein.html.erb
<%= form_tag("/Controller-Name/Aktionsname") do %>
<div class="form">
<label>title: </label>
<input type="text">
<br>
<label>text: </label>
<textarea></textarea>
<input type="submit" value="Post">
</div>
<% end %>
Eingabedaten können für die beiden hier beschriebenen ↓ nicht gesendet werden.
rb:app/views/Irgendein.html.erb
<%= form_tag("/Controller-Name/Aktionsname") do %>
<input type="text">
<textarea></textarea>
<% end %>
Legen Sie das Attribut name </ strong> fest, um das Senden zu ermöglichen.
↓ Einstellen des Namensattributs
rb:app/views/Irgendein.html.erb
<%= form_tag("/Controller-Name/Aktionsname") do %>
<input name="title" type="text">
<textarea name="content"></textarea>
<% end %>
Legen Sie für die Namensattributeinstellung den Spaltennamen beim Erstellen der Datenbank fest. Ich habe "Titel und Text" eingestellt.
Durch Festlegen und Senden des Namensattributs wird ein Hash mit dem Wert des Namensattributs als Schlüssel an die Aktion gesendet.
Als nächstes ordnen wir das "Namensattribut" dem Aktionscontroller zu.
Im vorherigen Formular habe ich das Namensattribut so festgelegt, dass es an die Aktion des Controllers gesendet werden kann. Stellen Sie den Controller dann auf params </ strong> ein, um die im Formular übermittelten Daten zu empfangen. Parameter </ strong> sind Parameter, die Werte wie Formulardaten und link_to empfangen. In den obigen Ansichten habe ich die Daten mit dem Tag
app/controllers/Irgendein_controller.rb
‥
def create
params[:content]
params[:title]
redirect_to("/Controller-Name/Aktionsname")
end
Denken Sie daran, dass es instanziiert und mit der Rails-Konsole </ strong> erstellt wurde. Geben Sie ein, um anstelle der obigen Parameter eine Post-Instanz zu erstellen.
app/controllers/Irgendein_controller.rb
‥
def create
@post = Post.new(content: params[:content])
@post.save
@post = Post.new(title: params[:title])
@post.save
redirect_to("/posts/index")
end
Vergessen Sie nicht @ post.save </ strong>. Bis zu diesem Punkt werden die gebuchten Daten nach Möglichkeit angezeigt.
Der Titel und der Text werden wiedergegeben.
Die oben genannten Dateien werden auf github veröffentlicht. Wenn Sie interessiert sind, laden Sie es bitte herunter. → Github
Das Obige spiegelt den veröffentlichten Inhalt des Formulars wider. Es ist ein ziemlich anwendungsähnlicher Mechanismus, und die Spannung steigt. Nachdem die Buchungsfunktion erstellt wurde, möchte ich von nun an einen Mechanismus wie "Löschen / Bearbeiten" hinzufügen.
Bücher: <a href = "https://www.amazon.co.jp/%E3%81%9F%E3%81%AE%E3%81%97%E3%81%84Ruby-%E7%AC%AC6 % E7% 89% 88-Informatik-IDEE-% E9% AB% 98% E6% A9% 8B / dp / 4773939848 / ref = sr_1_1? __Mk_ja_JP =% E3% 82% AB% E3% 82% BF% E3% 82 % AB% E3% 83% 8A & dchild = 1 & keywords =% E3% 81% 9F% E3% 81% AE% E3% 81% 97% E3% 81% 84Ruby +% E7% AC% AC6% E7% 89% 88 & qid = 1600088731 & s = books & sr = 1-1 "target =" blank "> Fun Ruby 6. Ausgabe
Außerdem gibt es einen Link zum Twitter-Portfolio, wenn Sie also interessiert sind Bitte verbinden. Ich würde mich sehr freuen, Freunde zu haben, mit denen ich mein Programmierlernen teilen kann.
Recommended Posts