| 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 | 
rails nouveau nom d'application[option]
#Exemple)
rails new taskmanage -d postgresql
Accédez au répertoire où vous avez créé l'application et créez une base de données
rails db:create
Frappez la commande suivante, 「http://localhost:3000」 Accédez à et voyez si la page par défaut des rails est affichée
rails s
--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
| 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 | 
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
Vérifiez le fichier de migration créé et exécutez ** rails db: migrate **
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
= link_to 's'inscrire', new_task_path
tasks_controller.rb
def new
 @task = Task.new
end
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
** 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
| 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 | 
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
tasks_controller.rb
def index
 @tasks = Task.all
end
@tasks.each do |task|
 task.name
 task.created_at
ruby:index.html.slim
link_to task.name, task_path(task)
tasks_controller.rb
def show
 @task = Task.find(params[:id])
end
ruby:show.html.slim
@task.id
@task.name
@task.created_at
@task.updated_at
ruby:index.html.slim
link_to 'Éditer', edit_task_path(task)
ruby:show.html.slim
link_to 'Éditer', edit_task_path
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
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
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}
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します。よろしいですか?"}
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