(Ruby on Rails6) Reflektiert den veröffentlichten Inhalt aus dem Formular

Maschinenspezifikationen

· Version 10.15.3 ・ Ruby Ruby 2.6.3p62 ・ Schienen 6.0.3.2

Vorwort

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 ...

Reflektiert den geposteten Inhalt aus dem Formular

Hier gehen wir von der Formularerstellung in der Ansicht aus.

Formularbildschirm erstellen

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>

Eine Aktion erstellen

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"

Über Elemente

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 %>

Einstellungen umleiten

In der bisherigen Arbeit ・ Formular erstellen

  • Von der Form zur Aktion Das Wir. Um die gesendeten Daten anzuzeigen, stellen Sie hier die Umleitung auf die entsprechende (Listen-) Seite ein.

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

Senden und speichern Sie Eingabedaten in der Datenbank

Ü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.

  • 2 (Eingabe / Textbereich)

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.

Namensattributeinstellung und Variable "params"

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