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