Erklärung von Ruby on Rails für Anfänger ⑤ ~ Datenbank bearbeiten und löschen ~

Einführung

Diese Zeit ist eine Fortsetzung des vorherigen Artikels.

Bitte lesen Sie den vorherigen Artikel, wenn Sie möchten.

Erklärung von Ruby on Rails für Anfänger ①

Erklärung von Ruby on Rails für Anfänger ② ~ Erstellen von Links ~

Erklärung von Ruby on Rails für Anfänger ③ ~ Erstellen einer Datenbank ~

Erklärung von Ruby on Rails für Anfänger ④ ~ Verwendung von Namensregeln und form_Tag ~

Anzeigen einer Liste von Datenbankdaten

Lassen Sie uns die Daten der Benutzertabelle abrufen und mit dem folgenden Code anzeigen.

index.html.erb


 <% @users.each do |user| %>
   <p>name</p>
   <div class="ruby-name"><%= user.name %></div>
 <% end %>

In der Steuerung übergeben, um die Instanzvariable @users zu verwenden.

users_controller.rb


def index
  @users = User.all
end

Der folgende Bildschirm wird angezeigt.

image.png

Darüber hinaus wird CSS wie folgt angegeben.

users.scss


.ruby-name {
    color: purple;
    display: inline-block;
    font-weight: bold;
}

Datenbank löschen

Lassen Sie uns nun das Löschen der Datenbank implementieren.

Schreiben Sie den Code wie folgt um.

index.html.erb


 <% @users.each do |user| %>
   <p>name</p>
   <div class="ruby-name">
     <%= user.name %>
     <%= link_to("Löschen", "/users/#{user.id}/destroy", {method: "post"})%>
   </div>
 <% end %>

image.png

Ich konnte das Element durch Klicken auf die Schaltfläche Löschen löschen.

image.png

Schauen wir uns die spezifische Verarbeitung an. Der folgende Code wurde zu index.html.erb hinzugefügt.

<%= link_to("Löschen", "/users/#{user.id}/destroy", {method: "post"})%>

Dadurch wird das zweite Argument verarbeitet, wenn Sie auf Löschen klicken.

Das zweite Argument, "/users/#{user.id}/destroy", enthält die Datenbank-ID im Routing zur Zerstörungsaktion des Benutzercontrollers. Durch Angabe der URL auf diese Weise kann der Controller die ID der Datenbank erhalten, die Sie löschen möchten.

Das dritte Argument gibt an, dass dies eine Post-Anfrage ist, keine Get-Anfrage.

Route wie folgt.

routes.rb


post "users/:id/destroy" => "users#destroy"

Der: id-Teil kann eine beliebige Nummer empfangen. Die empfangene Nummer wird in params [: id] im Benutzer-Controller gespeichert.

Codieren Sie den Controller wie folgt:

users_controller.rb


def destroy
  user = User.find_by(id: params[:id])
  user.destroy
  redirect_to("/users/index")
end

Extrahieren Sie im Teil user = User.find_by (id: params [: id]) die Daten mithilfe des Modells aus der Datenbank. Extrahieren Sie die Daten mit derselben ID wie die von index.html.erb gesendete ID aus der Datenbank und speichern Sie sie im Benutzer.

Die Daten werden im Teil von "user.destroy" gelöscht.

Im Teil "redirect_to (" / users / index ")" leiten wir zu index.html.erb um. Dieses Mal wird es neu geladen, da dies der Vorgang ist, wenn auf den Link zum Löschen in index.html.erb geklickt wird.

Zu diesem Zeitpunkt haben Sie die Daten erfolgreich aus der Datenbank gelöscht.

Bearbeiten der Datenbank

Als nächstes bearbeiten wir die Datenbank.

Bearbeiten Sie index.html.erb wie folgt:

index.html.erb


 <% @users.each do |user| %>
   <p>name</p>
   <div class="ruby-name">
     <%= user.name %>
     <%= link_to("Löschen", "/users/#{user.id}/destroy", {method: "post"})%>
     <%= link_to("Bearbeiten", "/users/#{user.id}/edit") %>
   </div>
 <% end %>

Neu hinzugefügt wurde diesmal der Teil "<% = link_to (" edit "," / users / # {user.id} / edit ")%>".

Dadurch gelangen Sie zu einer neuen Ansichtsdatei mit dem Namen "users / edit".

Zu diesem Zeitpunkt übergeben Sie die ID der Datenbank, die Sie bearbeiten möchten, an die Ansichtsdatei.

Route wie folgt:

routes.rb


get "users/:id/edit" => "users#edit"

Bereiten Sie die folgende Ansichtsdatei im folgenden Pfad vor. image.png

edit.html.erb


<%= form_tag("/users/#{@user.id}/update") do  %>
  <input type="text" value="<%[email protected]%>" name="new_name">
  <input type="submit" value="Senden">
<% end %>

Klicken Sie als Test unten auf den Teil mit der Aufschrift "Datei index.html.erb bearbeiten". image.png

Es wird wie folgt sein. image.png

Hier ist eine Beschreibung der Datei edit.html.erb.

Der Teil form_tag (" / users / # {@ user.id} / update ") gibt an, welche Aktion von welchem Controller verwendet werden soll.

Dieses Mal verwenden wir die Aktualisierungsaktion des Benutzercontrollers. Um die Datenbank zu bearbeiten, senden Sie außerdem die ID der Datenbank, die Sie bearbeiten möchten. form_tag war eine Post-Anfrage.

Im Teil von <input type =" text "value =" <% [email protected]%> "name =" new_name "> werden der Anfangswert und der Name des Eingabe-Tags festgelegt. "@ user" wird von der Bearbeitungsaktion des Benutzer-Controllers gesendet.

users_controller.rb


def edit
  @user = User.find_by(id: params[:id])
end

@ User enthält den in der Datenbank gefundenen Wert gemäß id.

Jetzt ändern wir den Wert wie unten gezeigt und senden ihn.

image.png

Das folgende Routing führt dann die Aktualisierungsaktion des Benutzercontrollers aus.

routes.rb


post "users/:id/update" => "users#update"

users_controller.rb


def update
  user = User.find_by(id: params[:id])
  user.name = params[:new_name]
  user.save
  redirect_to("/users/index")
end

Durchsuchen Sie in der Aktualisierungsaktion die Datenbank nach der gesendeten ID, speichern Sie sie in der lokalen Variablen user, schreiben Sie die Daten in der Namensspalte in den neu gesendeten Namen um und speichern Sie sie mit "user.save". Danach leite ich zu / users / index um.

Daher ändert es sich wie folgt.

image.png

Am Ende

Dies ist das Ende dieses Artikels.

Vielen Dank für Ihre Beziehung.

Bitte lesen Sie die folgenden Artikel, wenn Sie möchten.

Erklärung von Ruby on Rails für Anfänger ⑥ ~ Erstellung der Validierung ~

Erklärung von Ruby on Rails für Anfänger ⑦ ~ Implementierung von Flash ~

Recommended Posts

Erklärung von Ruby on Rails für Anfänger ⑤ ~ Datenbank bearbeiten und löschen ~
Erklärung von Ruby auf Schienen für Anfänger ①
Erklärung von Ruby on Rails für Anfänger ③ ~ Erstellen einer Datenbank ~
Erklärung von Ruby auf Schienen für Anfänger ⑥ ~ Erstellung der Validierung ~
Erklärung von Ruby on Rails für Anfänger ② ~ Links erstellen ~
Erklärung von Ruby on Rails für Anfänger ⑦ ~ Flash-Implementierung ~
Erklärung von Ruby on Rails für Anfänger ④ ~ Informationen zu Benennungsregeln und zur Verwendung von form_Tag ~
[Verfahren 1 für Anfänger] Ruby on Rails: Aufbau einer Entwicklungsumgebung
Ruby on Rails ~ Grundlagen von MVC und Router ~
[Für Anfänger] Erläuterung von Klassen, Instanzen und Statik in Java
(Ruby on Rails6) Anzeige der Datenbank, die die ID der Datenbank erhalten hat
Alle Inhalte der Listenseite löschen [Ruby on Rails]
Grundkenntnisse in Ruby on Rails
(Ruby on Rails6) Erstellen einer Datenbank und Anzeigen in einer Ansicht
[Ruby on Rails] Einführung der Anfangsdaten
[Rails] Hinzufügen der Ruby On Rails-Kommentarfunktion
Erläuterung der Ruby Time- und Date-Objekte
Rails [Für Anfänger] Implementierung der Kommentarfunktion
Befehl zum Erstellen / Löschen des Ruby on Rails-Controllers
[Ruby on Rails] Japanische Fehlernotation
[Ruby on Rails] Implementierung einer ähnlichen Funktion
Anfänger haben mit Ruby on Rails ein Portfolio erstellt
[Rails] Artikel für Anfänger, um den Fluss von form_with zu organisieren und zu verstehen
Validierungseinstellungen für die Ruby on Rails-Anmeldefunktion
Implementierung der Ruby on Rails-Anmeldefunktion (Sitzung)
[Ruby on Rails] Bis zur Einführung von RSpec
Empfehlung der Serviceklasse in Ruby on Rails
[Ruby on Rails] Ein Memorandum mit Layoutvorlagen
[Rails] Verfahren zum Verknüpfen von Datenbanken mit Ruby On Rails
[Ruby on Rails] Nachbearbeitungsfunktion (Aktualisieren, Löschen)
[Ruby on Rails] Individuelle Anzeige von Fehlermeldungen
[Ruby on Rails] Hinzufügen und Löschen von Tags und Anzeigen von (Erfolgs- / Fehler-) Meldungen mit Ajax.
[Ruby on Rails] Asynchrone Kommunikation der Posting-Funktion, Ajax
[Für Anfänger] DI ~ Die Grundlagen von DI und DI im Frühjahr ~
Implementierung der Ruby on Rails-Anmeldefunktion (Devise Edition)
[Ruby on Rails] Löschen Sie s3-Bilder mit Active Strage
[Ruby On Rails] Ursachen und Abhilfemaßnahmen für ActionView :: Template :: Error (ActiveStorage :: InvariableError) (Hypothese / Überprüfung)
Ruby on Rails Elementary
Ruby on Rails Grundlagen
Java Häufig verwendete Anweisungsliste (für Anfänger und Anfänger)
Ruby On Rails Association
[Ruby on Rails] Von der MySQL-Konstruktion zum Datenbankwechsel
(Ruby on Rails6) So erstellen Sie ein Modell und eine Tabelle
Versuchen Sie es mit dem Ruby on Rails-Abfrageattribut
<Für Super-Anfänger> Warum machst du keinen Chat-Bot mit "Talk API"? ?? [Ruby on Rails]
[Ruby on Rails] Nur den Benutzer, der Beiträge verfasst hat, dürfen bearbeiten
[Ruby on Rails] Eliminierung von Fat Controller-First, Logik zum Modell-