[RUBY] Procédure de création de l'application de gestion des tâches

1. Préparation à la création de l'application

1-1. Pensez au contenu de l'application à créer

une fonction Contenu de la fonction
Affichage de la liste Lister toutes les tâches
vue détaillée Afficher les détails d'une tâche
s'inscrire Enregistrer une nouvelle tâche dans la base de données
Éditer Modifier la tâche enregistrée et mettre à jour la base de données
Effacer Supprimer les tâches enregistrées de la base de données

1-2. Choisissez le nom de l'application et créez un modèle

rails nouveau nom d'application[option]

#Exemple)

rails new taskmanage -d postgresql

1-3. Créer une base de données

Accédez au répertoire où vous avez créé l'application et créez une base de données

rails db:create

1-4. Démarrez le serveur

Frappez la commande suivante, 「http://localhost:3000」 Accédez à et voyez si la page par défaut des rails est affichée

rails s

2. Créez un modèle

Composants du modèle

--Classe Ruby correspondant au modèle Affaire de chameau

--Tables de la base de données correspondant au modèle Cas de serpent avec plusieurs noms de classe de modèle

2-1. Concevoir les attributs du modèle

attribut Nom d'attribut Type de données Autorisez-vous null Valeur par défaut
Nom name string interdit Aucun
explication détaillée description text approuver Aucun

2-2. Créer un modèle de modèle

rails g model [Nom du modèle] [Nom d'attribut:Type de donnéesNom d'attribut:Type de données...] [option]

#Exemple)

rails g model Task name:string description:text

2-3. Migrer et ajouter une table à la base de données

Vérifiez le fichier de migration créé et exécutez ** rails db: migrate **

3. Créer un contrôleur et afficher

rails g nom du contrôleur du contrôleur[Nom de l'action Nom de l'action...] [option]

#Exemple)

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

3. Mise en œuvre d'une nouvelle fonction d'enregistrement

3-1. Ajout d'un lien vers la nouvelle page d'inscription sur l'écran de liste

= link_to 's'inscrire', new_task_path

3-2. Actions mises en œuvre pour le nouvel écran d'enregistrement

tasks_controller.rb


def new
 @task = Task.new
end

3-3. Implémentation d'une vue de la nouvelle page d'inscription

slim:new.html.slim


= form_with model: @task, local: true do |f|
 .form-group
  = f.label :name #label =Focalisez le champ de saisie en affichant le nom du champ de saisie et en cliquant sur la partie étiquette
  = f.text_field :name
 .form-group
  = f.label :description
  = f.text_area :description
 = f.submit nil

3-4. Mise en œuvre de l'action d'enregistrement

** create action ** = "Enregistrer les données envoyées depuis le formulaire d'inscription dans la base de données et passer à l'écran de liste"

tasks_controller.rb


def create
 @task= Task.new(task_params)
 task.save
 redirect_to tasks_url, notice:"tâche"#{task.name}A été enregistré."
end
private
 def task_params #Paramètres forts = Les informations envoyées depuis le formulaire en tant que paramètres de demande sont conformes{task: {...}}Le rôle de vérifier s'il se présente sous la forme et d'extraire uniquement les informations nécessaires
  params.require(:task).permit(:name, :description)
 end

Différence entre render et Redirect_to

render Redirect_to
Afficher la vue après l'action Ne pas afficher la vue immédiatement après le traitement de l'action et la diriger vers une autre URL

message flash

Fournissez un peu de données à la prochaine requête lors de la redirection

 redirect_to tasks_url, notice:"tâche"#{task.name}A été enregistré."
#Moyens de rediriger après l'envoi d'un message d'achèvement d'enregistrement de tâche

flash.now[:alert] = "Alertez immédiatement"
#Si dans la même demande, flash.now

4. Mise en œuvre de la fonction d'affichage de liste

4-1. Actions mises en œuvre pour le nouvel écran d'enregistrement

tasks_controller.rb


def index
 @tasks = Task.all
end

4-2. Afficher toutes les tâches sur la page de liste

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

5. Mise en œuvre de la fonction d'affichage détaillée

5-1. Ajout d'un lien de la page de liste vers la page de détail

ruby:index.html.slim


link_to task.name, task_path(task)

5-2. Obtenir la tâche sélectionnée avec l'action d'affichage des détails

tasks_controller.rb


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

5-3. Obtenir la tâche sélectionnée avec l'action de vue détaillée

ruby:show.html.slim


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

6. Mise en œuvre de la fonction d'édition

6-1. Ajout d'un lien vers la page d'édition sur la page de liste et la page de détail

ruby:index.html.slim


link_to 'Éditer', edit_task_path(task)

ruby:show.html.slim


link_to 'Éditer', edit_task_path

6-2. Définir les actions de modification et de mise à jour

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: "tâche"#{task.name}"Le a été mis à jour."
end

6-3. Mise en œuvre de l'affichage de la page d'édition

slim:new.html.slim


= form_with model: @task, local: true do |f|
 .form-group
  = f.label :name #label =Focalisez le champ de saisie en affichant le nom du champ de saisie et en cliquant sur la partie étiquette
  = f.text_field :name
 .form-group
  = f.label :description
  = f.text_area :description
 = f.submit nil

Points communs à l'aide de modèles partiels

Utilisez un modèle partiel pour assembler les parties communes de la nouvelle page d'inscription et de la page d'édition

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

Appel d'un modèle partiel

ruby:new.html.slim


= render partial: 'form'. locals: {task: @task} #"Variables d'instance@Passer la tâche en tant que tâche de variable locale en partie "

ruby:edit.html.slim


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

7. Mise en œuvre de la fonction de suppression

7-1. Ajouter un bouton de coupe à la page de liste et à la page de détail

ruby:index.html.slim


= link_to 'Effacer', task, method: :delete, date: { confirm: "tâche"#{task.name}」をEffacerします。よろしいですか?"}

ruby:show.html.slim


= link_to 'Effacer', @task, method: :delete, date: { confirm: "tâche"#{task.name}」をEffacerします。よろしいですか?"}

7-2. Définir l'action de destruction

tasks_controller.rb


def destroy
 task = Task.find(params[:id])
 task.destroy
 redirect_to tasks_url, notice: "tâche"#{task.name}A été supprimée."
end

[Référence | Guide pratique d'apprentissage rapide Ruby on Rails 5 qui peut être utilisé sur le terrain](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

Procédure de création de l'application de gestion des tâches
Création d'applications personnelles # 2
Création d'applications personnelles # 3
Création d'applications personnelles # 1
Conditions de création d'applications personnelles
[Spring Boot] Création d'applications Web
TECH CAMP apprentissage de la création d'applications personnelles ③
TECH CAMP apprentissage de la création d'applications personnelles ②
Créer une application d'enquête avec Spring Boot