[Ruby on Rails] Nachbearbeitungsfunktion (Aktualisieren, Löschen)

Ziel

Entwicklungsumgebung

ruby 2.5.7 Rails 5.2.4.3 OS: macOS Catalina

Annahme

1, Änderung des Routings

config/routes.rb


resources :posts, only: [:create, :new]

Durch Hinzufügen des Folgenden zur obigen Beschreibung wird die Routeneinstellung Bearbeiten, Aktualisieren, Zerstören.

config/routes.rb


resources :posts, only: [:create, :new, :edit, :update, :destroy]

Es ist in Ordnung, wenn die folgenden Ergebnisse erhalten werden.

Terminal


$ rails routes

...

posts     POST     /posts(.:format)           posts#create
new_post  GET      /posts/new(.:format)       posts#new
edit_post GET      /posts/:id/edit(.:format)  posts#edit
post      PATCH    /posts/:id(.:format)       posts#update
          PUT      /posts/:id(.:format)       posts#update
          DELETE   /posts/:id(.:format)       posts#destroy

2, Reglerwechsel

Fügen Sie Folgendes hinzu

app/controllers/posts_controller.rb



...

  def edit
   @post = Post.find(params[:id])
  end

  def update
    @post = Post.find(params[:id])
    if @post.update(post_params)
      redirect_to request.referer
    else
      render :new
    end
  end

  def destroy
    @post = Post.find(params[:id])
    @post.destroy
    redirect_to request.referer
  end

3, Ansichtsänderung

Erstellen Sie eine neue Datei edit.html.erb unter app / views / posts

erb:app/views/posts/edit.html.erb


<h1>Posts#edit</h1>
<span>Derzeit angemeldeter Benutzer:<%= current_user.name %></span>
<%= form_for(@post, url: post_path(@post)) do |f| %>
	<div>
		<%= f.label :Titel%><br>
		<%= f.text_field :title, autofocus: true, :placeholder =>"#{@post.title}" %>
	</div>
	<div>
		<%= f.label :Inhalt%><br>
		<%= f.text_area :body, :placeholder =>"#{@post.body}" %>
	</div>
	<div><%= f.submit "Aktualisieren" %></div>
<% end %>

erb:app/views/posts/new.html.erb


<table>
	<thead>
		<tr>
			<th>Gepostet mit Namen</th>
			<th>Titel</th>
			<th>Text</th>
		</tr>
	</thead>
	<tbody>
		<% @posts.each do |post| %>
			<tr>
				<td><%= post.user.name %></td>
				<td><%= post.title %></td>
				<td><%= post.body %></td>
				<td><%= link_to "Bearbeiten", edit_post_path(post) %></td>← Hinzufügen
				<td><%= link_to "Löschen", post_path(post), method: :delete %></td>← Hinzufügen
			</tr>
		<% end %>
	</tbody>
</table>

Recommended Posts

[Ruby on Rails] Nachbearbeitungsfunktion (Aktualisieren, Löschen)
[Ruby on Rails] Post-Bildvorschau-Funktion in Refile
[Ruby on Rails] Paging-Funktion eingeführt
[Ruby on Rails] CSV-Ausgabefunktion
[Ruby on Rails] DM, Chat-Funktion
[Ruby on Rails] Suchfunktion (nicht ausgewählt)
[Rails] Hinzufügen der Ruby On Rails-Kommentarfunktion
[Ruby on Rails] Folgen Sie der Funktionsimplementierung: Bidirektional
Befehl zum Erstellen / Löschen des Ruby on Rails-Controllers
[Ruby on Rails] Implementierung einer ähnlichen Funktion
[Ruby on Rails] Logisches Löschen (Auszahlungsfunktion)
[Ruby on Rails] Posting-Funktion, die nur angemeldete Benutzer posten können
Validierungseinstellungen für die Ruby on Rails-Anmeldefunktion
Implementierung der Ruby on Rails-Anmeldefunktion (Sitzung)
Ruby: Kontobearbeitungsfunktion
Ruby on Rails Elementary
Ruby on Rails Grundlagen
Ruby on Rails Implementierung der automatischen Mail-Sendefunktion
Zusammenfassung der Methoden zum Aktualisieren mehrerer Spalten [Ruby on Rails]
[Ruby on Rails] Löschen Sie s3-Bilder mit Active Strage
[Ruby on Rails] Post-Score-Ranking-Funktion (gesamte Anzeige)
[Ruby on Rails] Suchfunktion (Modell, Methodenauswahlformel)
Ruby on Rails Lernrekord -2020.10.03
Portfolioerstellung Ruby on Rails
[Ruby on Rails] Debuck (bindend.pry)
Ruby on Rails Lernrekord -2020.10.05
Ruby on Rails Lernrekord -2020.10.09
Ruby on Rails lernen Rekord-2020.10.07 ②
Poste Videos auf Schienen
Brechen Sie die Ruby on Rails-Migration ab
Ruby on Rails Lernrekord -2020.10.06
Zusammenfassung der Ruby on Rails-Validierung
Ruby on Rails Grundlegendes Memorandum
Ruby on Rails Einstellung der automatischen E-Mail-Sendefunktion (über Google Mail)
[Ruby on Rails] Lesezeichenfunktion (bevorzugte Registrierung, wie): Eine Richtung
Alle Inhalte der Listenseite löschen [Ruby on Rails]
Ein Hinweis zum Seed-Feature von Ruby on Rails
[Ruby on Rails] Implementieren Sie die Anmeldefunktion von add_token_to_users mit API
[Ruby on Rails] Leseversuch (: [],: Schlüssel)
Ruby on Rails-Variablen, konstante Zusammenfassung
Installation von Ruby + Rails unter Ubuntu 18.04 (rbenv)
Grundkenntnisse in Ruby on Rails
Progate Ruby on Rails5 Rückblick
Verwendung von Ruby on Rails
Ruby on Rails Japanisch-Englisch kompatibler i18n
(Ruby on Rails6) Gepostete Inhalte "löschen"
Ruby on Rails 6.0-Umgebungskonstruktionsnotiz
[Ruby on Rails] Erstellung der Bestätigungsseite
Ruby On Rails entwickelt Routing-Konflikte
[Ruby on Rails] Praktische Hilfsmethode