Hier bleibt die Arbeit des "Bearbeitens des veröffentlichten Inhalts" als Memorandum unter der Annahme, dass die veröffentlichte Seite erstellt wurde.
Erstellen Sie eine neue Bearbeitungsseite an drei Punkten: Routen, Controller und Ansicht. Auch für die Seitenerstellung
・ Controller-Name → Formular ・ Aktionsname → Bearbeiten
Es ist eingestellt mit.
(Beispiel)
config/routes
Rails.application.routes.draw do
get '/' => 'form#index'
get '/form' => 'form#form'
post "form/create" => "form#create"
get "form/:id/edit" => "form#edit"⇦ Dies
get "form/:id" => "form#post"
# For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html
end
erb:app/views/Irgendein.html.erb
<h1>Seite bearbeiten</h1>
rb:app/controllers/Irgendein.controller.rb
class FormController < ApplicationController
def index
@forms = Form.all
@forms = Form.all.order(created_at: :desc)
end
def post
@forms = Form.find_by(id: params[:id])
end
def form
@forms = Form.find_by(id: params[:id])
end
def create
@forms = Form.new(content: params[:content])
@forms.save
@forms = Form.new(title: params[:title])
@forms.save
redirect_to("/")
end
def edit ← von hier
Ende ← bis hierher
end
Der Beitrag </ strong> von Routen wird beim Abrufen von Formulardaten verwendet. Bitte setzen Sie beim Erstellen einer neuen Seite get </ strong>. Es wird einen Fehler verursachen.
controllers
rb:app/views/Irgendein.html.erb
・
・
・
def edit
@forms = Form.find_by(id: params[:id])← hier
end
Setzen Sie in der Bearbeitungsaktion @forms = Form.find_by (id: params [: id]) </ strong>, um die Daten mit derselben ID wie die URL abzurufen.
views
erb:app/views/Irgendein.html.erb
<h1>Seite bearbeiten</h1>
<div class="form">
<div>
<textarea><%= @forms.content %></textarea>← hier
<input type="submit" value="sparen"> </div>
</div>
<% = @ forms.content%> </ strong> legt den Anfangswert der Eingabe fest.
Sie erhalten den Wert aus dem Formular. In Routen sollten Sie ihn daher mit post </ strong> anstatt mit get ausführen.
config/routes.rb
post "form/:id/new" => "form#new"
Wenn Sie bereit sind, den Wert aus dem Formular für die Aktion zu erhalten, müssen Sie umleiten </ strong>, nachdem Sie auf Senden geklickt haben.
rb:app/views/Irgendein.controllers.rb
def new
redirect_to("/")
end
Verwenden Sie redirect_to ("/") </ strong>, um die Umleitung festzulegen. / </ strong> wird von mir festgelegt, bitte arrangieren Sie es individuell.
Ich habe den Wert aus dem Formular erhalten und ihn früher umgeleitet. Geben Sie hier das Ziel in Ansichten an.
erb:app/views/Irgendein.controllers.erb
<h1>Seite bearbeiten</h1>
<%= form_tag("/posts/#{@post.id}/new") do %>← hier
<div class="form">
<div>
<textarea><%= @forms.title %></textarea>
<textarea><%= @forms.content %></textarea>
<input type="submit" value="sparen"> </div>
</div>
<% end %>← hier
↓ Details
erb:app/views/Irgendein.html.erb
<%= form_tag("/posts/#{@post.id}/new") do %>
Formular-Tag
<% end %>
Das Ziel wird durch ↑ angegeben.
Ich muss die Daten aus der Datenbank erhalten. Die Erfassungsaktion kann durch Hinzufügen des Aktionsnamenattributs ausgeführt werden. Führen Sie es also aus.
erb:app/views/Irgendein.html.erb
<h1>Seite bearbeiten</h1>
<%= form_tag("/posts/#{@post.id}/new") do %>
<div class="form">
<div>
<textarea name="content"><%= @forms.content %></textarea>← hier
<input type="submit" value="sparen"> </div>
</div>
<% end %>
Mit params </ strong> können Sie ein Objekt erstellen, das die gesendeten Daten enthält.
rb:app/controllers/Irgendein.controller.rb
def update
@forms = Form.find_by(id: params[:id])
@forms.content = params[:content]
@forms.save
redirect_to("/")
end
Vielen Dank, dass Sie so weit gelesen haben. Es kann einige Zeit dauern, bis Sie den Prozess wie das Festlegen des Anfangswertes verstehen, aber ich möchte Ihr Verständnis stetig vertiefen. Da die Details wie "Link zur Posting-Seite" in der Einführung hier weggelassen werden, wird empfohlen, dass Sie die von Ihnen selbst erstellte festlegen.
<a href = "https://www.amazon.co.jp/Ruby-Rails-%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83% 89-beeindruck-gear / dp / 4295008052 "target =" blank "> Ruby on Rails6 - Praktischer Leitfaden
Es gibt auch einen Link auf 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