[RUBY] Verfahren zur Erstellung von Aufgabenverwaltungsanwendungen

1. Vorbereitung für die Anwendungserstellung

1-1 Denken Sie über den Inhalt der zu erstellenden Anwendung nach

Funktion Funktionsinhalt
Listenanzeige Listen Sie alle Aufgaben auf
Detailansicht Zeigen Sie die Details einer Aufgabe an
Anmelden Neue Aufgabe in db registrieren
Bearbeiten Bearbeiten Sie die registrierte Aufgabe und aktualisieren Sie die Datenbank
Löschen Löschen Sie registrierte Aufgaben aus der Datenbank

1-2. Legen Sie den Anwendungsnamen fest und erstellen Sie eine Vorlage

Schienen neuer Anwendungsname[Möglichkeit]

#Beispiel)

rails new taskmanage -d postgresql

1-3. Erstellen Sie db

Wechseln Sie in das Verzeichnis, in dem Sie die Anwendung erstellt haben, und erstellen Sie eine Datenbank

rails db:create

1-4. Starten Sie den Server

Drücken Sie den folgenden Befehl: 「http://localhost:3000」 Gehen Sie zu und prüfen Sie, ob die Standardseite für Schienen angezeigt wird

rails s

2. Erstellen Sie ein Modell

Modellkomponenten

--Ruby-Klasse entsprechend dem Modell Kamelkoffer

--Tabellen der Datenbank entsprechend dem Modell Schlangenfall mit mehreren Modellklassennamen

2-1. Entwerfen Sie die Attribute des Modells

Attribut Attributname Datentyp Erlaubst du null? Standardwert
Name name string nicht erlaubt Keiner
ausführliche Erklärung description text Erlaubnis geben Keiner

2-2. Erstellen Sie eine Modellvorlage

rails g model [Modellname] [Attributname:DatentypAttributname:Datentyp...] [Möglichkeit]

#Beispiel)

rails g model Task name:string description:text

2-3. Migrieren Sie und fügen Sie der Tabelle eine Tabelle hinzu

Überprüfen Sie die erstellte Migrationsdatei und führen Sie ** Rails db: migrate ** aus

3. Controller erstellen und anzeigen

Schienen g Controller Controller Name[Aktionsname Aktionsname...] [Möglichkeit]

#Beispiel)

rails g controller tasks index show new edit
Rails.application.routes.draw do
 root to: 'tasks#index'
 resources :tasks
end

3. Implementierung einer neuen Registrierungsfunktion

3-1. Es wurde ein Link zur neuen Registrierungsseite auf dem Listenbildschirm hinzugefügt

= link_to 'Anmelden', new_task_path

3-2. Implementierte Aktionen für neuen Registrierungsbildschirm

tasks_controller.rb


def new
 @task = Task.new
end

3-3. Eine Ansicht der neuen Registrierungsseite wurde implementiert

slim:new.html.slim


= form_with model: @task, local: true do |f|
 .form-group
  = f.label :name #label =Fokussieren Sie das Eingabefeld, indem Sie den Namen des Eingabefelds anzeigen und auf das Beschriftungsteil klicken
  = f.text_field :name
 .form-group
  = f.label :description
  = f.text_area :description
 = f.submit nil

3-4. Durchführung der Registrierungsaktion

** Aktion erstellen ** = "Speichern Sie die vom Registrierungsformular gesendeten Daten in db und wechseln Sie zum Listenbildschirm."

tasks_controller.rb


def create
 @task= Task.new(task_params)
 task.save
 redirect_to tasks_url, notice:"Aufgabe"#{task.name}Wurde registriert."
end
private
 def task_params #Starke Parameter = Informationen, die vom Formular als Anforderungsparameter gesendet werden, sind wie erwartet{task: {...}}Die Rolle der Überprüfung, ob es sich um die Form handelt, und der Extraktion nur der erforderlichen Informationen
  params.require(:task).permit(:name, :description)
 end

Unterschied zwischen render und Redirect_to

render Redirect_to
Zeigen Sie die Ansicht nach der Aktion an Zeigen Sie die Ansicht nicht unmittelbar nach der Verarbeitung der Aktion an und leiten Sie sie an eine andere URL weiter

Flash-Nachricht

Liefern Sie bei der Umleitung ein paar Daten an die nächste Anforderung

 redirect_to tasks_url, notice:"Aufgabe"#{task.name}Wurde registriert."
#Mittel zum Umleiten nach dem Senden einer Nachricht zum Abschluss der Aufgabenregistrierung

flash.now[:alert] = "Sofort benachrichtigen"
#Wenn in der gleichen Anfrage, blinken.now

4. Implementierung der Listenanzeigefunktion

4-1. Implementierte Aktionen für neuen Registrierungsbildschirm

tasks_controller.rb


def index
 @tasks = Task.all
end

4-2. Alle Aufgaben auf der Listenseite anzeigen

@tasks.each do |task|
 task.name
 task.created_at

5. Implementierung einer detaillierten Anzeigefunktion

5-1. Ein Link von der Listenseite zur Detailseite wurde hinzugefügt

ruby:index.html.slim


link_to task.name, task_path(task)

5-2. Holen Sie sich die ausgewählte Aufgabe mit der Detailanzeigeaktion

tasks_controller.rb


def show
 @task = Task.find(params[:id])
end

5-3. Holen Sie sich die ausgewählte Aufgabe mit der Aktion "Detailansicht"

ruby:show.html.slim


@task.id
@task.name
@task.created_at
@task.updated_at

6. Implementierung der Bearbeitungsfunktion

6-1. Es wurde ein Link zur Bearbeitungsseite auf der Listenseite und der Detailseite hinzugefügt

ruby:index.html.slim


link_to 'Bearbeiten', edit_task_path(task)

ruby:show.html.slim


link_to 'Bearbeiten', edit_task_path

6-2 Definieren Sie Bearbeitungs- und Aktualisierungsaktionen

tasks_controller.rb


def edit
 @task = Task.find(params[:id])
end

def update
 task = Task.find(params[:id])
 task.update!(task_params)
 redirect_to tasks_url, notice: "Aufgabe"#{task.name}"Das wurde aktualisiert."
end

6-3. Implementierte Bearbeitungsseitenansicht

slim:new.html.slim


= form_with model: @task, local: true do |f|
 .form-group
  = f.label :name #label =Fokussieren Sie das Eingabefeld, indem Sie den Namen des Eingabefelds anzeigen und auf das Beschriftungsteil klicken
  = f.text_field :name
 .form-group
  = f.label :description
  = f.text_area :description
 = f.submit nil

Gemeinsamkeit mit Teilvorlagen

Verwenden Sie eine Teilvorlage, um die allgemeinen Teile der neuen Registrierungsseite und der Bearbeitungsseite zusammenzustellen

ruby:_form.html.slim


= form_with model: task, local: true do |f|
 .form-group
  = f.label :name 
  = f.text_field :name
 .form-group
  = f.label :description
  = f.text_area :description
 = f.submit nil

Teilvorlage aufrufen

ruby:new.html.slim


= render partial: 'form'. locals: {task: @task} #"Instanzvariablen@Aufgabe als lokale variable Aufgabe teilweise übergeben "

ruby:edit.html.slim


= render partial: 'form'. locals: {task: @task}

7. Implementierung der Löschfunktion

7-1. Fügen Sie der Listenseite und der Detailseite eine Schaltfläche zum Ausschneiden hinzu

ruby:index.html.slim


= link_to 'Löschen', task, method: :delete, date: { confirm: "Aufgabe"#{task.name}」をLöschenします。よろしいですか?"}

ruby:show.html.slim


= link_to 'Löschen', @task, method: :delete, date: { confirm: "Aufgabe"#{task.name}」をLöschenします。よろしいですか?"}

7-2. Definieren Sie die Zerstörungsaktion

tasks_controller.rb


def destroy
 task = Task.find(params[:id])
 task.destroy
 redirect_to tasks_url, notice: "Aufgabe"#{task.name}Wurde gelöscht."
end

[Referenz | Ruby on Rails 5 - Kurzanleitung, die vor Ort verwendet werden kann](https://www.amazon.co.jp/%E7%8F%BE%E5%A0%B4%E3%81%A7%E4%BD % BF% E3% 81% 88% E3% 82% 8B-Ruby-Rails-5% E9% 80% 9F% E7% BF% 92% E5% AE% 9F% E8% B7% B5% E3% 82% AC % E3% 82% A4% E3% 83% 89-% E5% A4% A7% E5% A0% B4% E5% AF% A7% E5% AD% 90 / dp / 4839962227)

Recommended Posts

Verfahren zur Erstellung von Aufgabenverwaltungsanwendungen
Erstellung persönlicher Anwendungen # 2
Erstellung persönlicher Anwendungen # 3
Erstellung persönlicher Anwendungen # 1
Bedingungen für die Erstellung persönlicher Anwendungen
[Spring Boot] Erstellung von Webanwendungen
TECH CAMP lernt die Erstellung persönlicher Anwendungen ③
TECH CAMP lernt die Erstellung persönlicher Anwendungen ②
Erstellen Sie eine Anfrage-App mit Spring Boot