Ici, le travail de "modification du contenu publié" est laissé comme un enregistrement oublié dans l'hypothèse où la page publiée a été créée.
Créez une nouvelle page d'édition à 3 points: routes, contrôleurs et vue. Aussi, pour la création de page
・ Nom du contrôleur → formulaire ・ Nom de l'action → Modifier
Il est défini avec.
(Exemple)
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"⇦ Ce
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/Tout.html.erb
<h1>Modifier la page</h1>
rb:app/controllers/Tout.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 modifier ← d'ici
fin ← jusqu'ici
end
Le post </ strong> des itinéraires est utilisé lors de la récupération des données du formulaire. Veuillez définir avec get </ strong> lors de la création d'une nouvelle page. Cela provoquera une erreur.
controllers
rb:app/views/Tout.html.erb
・
・
・
def edit
@forms = Form.find_by(id: params[:id])← ici
end
Définissez @forms = Form.find_by (id: params [: id]) </ strong> dans l'action de modification pour obtenir les données avec le même identifiant que l'URL.
views
erb:app/views/Tout.html.erb
<h1>Modifier la page</h1>
<div class="form">
<div>
<textarea><%= @forms.content %></textarea>← ici
<input type="submit" value="sauvegarder"> </div>
</div>
<% = @ forms.content%> </ strong> définit la valeur initiale de l'entrée.
Vous recevrez la valeur du formulaire, donc dans les routes, vous devriez le faire avec post </ strong> au lieu de get.
config/routes.rb
post "form/:id/new" => "form#new"
Lorsque vous êtes prêt à recevoir la valeur du formulaire pour l'action, vous devez rediriger </ strong> après avoir appuyé sur Envoyer.
rb:app/views/Tout.controllers.rb
def new
redirect_to("/")
end
Utilisez redirect_to ("/") </ strong> pour définir la redirection. / </ strong> est défini par moi, veuillez donc l'organiser individuellement.
J'ai obtenu la valeur du formulaire et je l'ai redirigé plus tôt. Ici, spécifiez la destination dans Vues.
erb:app/views/Tout.controllers.erb
<h1>Modifier la page</h1>
<%= form_tag("/posts/#{@post.id}/new") do %>← ici
<div class="form">
<div>
<textarea><%= @forms.title %></textarea>
<textarea><%= @forms.content %></textarea>
<input type="submit" value="sauvegarder"> </div>
</div>
<% end %>← ici
↓ Détails
erb:app/views/Tout.html.erb
<%= form_tag("/posts/#{@post.id}/new") do %>
Balise de formulaire
<% end %>
La destination est spécifiée par ↑.
J'ai besoin d'obtenir les données de la base de données. L'action d'acquisition peut être effectuée en ajoutant l'attribut de nom d'action, alors exécutons-la.
erb:app/views/Tout.html.erb
<h1>Modifier la page</h1>
<%= form_tag("/posts/#{@post.id}/new") do %>
<div class="form">
<div>
<textarea name="content"><%= @forms.content %></textarea>← ici
<input type="submit" value="sauvegarder"> </div>
</div>
<% end %>
params </ strong> vous permet de créer un objet pour contenir les données envoyées.
rb:app/controllers/Tout.controller.rb
def update
@forms = Form.find_by(id: params[:id])
@forms.content = params[:content]
@forms.save
redirect_to("/")
end
Merci d'avoir lu jusqu'ici. Cela peut prendre un certain temps avant que vous puissiez comprendre le processus tel que la définition de la valeur initiale, mais je voudrais approfondir régulièrement votre compréhension. De plus, étant donné que les détails tels que "lien vers la page de publication" sont omis de l'introduction ici, il est recommandé de définir celui que vous créez vous-même.
<a href = "https://www.amazon.co.jp/Ruby-Rails-%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83% 89-impress-gear / dp / 4295008052 "target =" blank "> Ruby on Rails6 Guide pratique
De plus, il y a un lien sur Twitter / Portfolio, donc si vous êtes intéressé, Connectez-vous s'il vous plaît. Je serais très heureux d'avoir des amis avec qui je peux partager mon apprentissage de la programmation.
Recommended Posts