Ici, je vais expliquer brièvement ce qu'est before_action.
before_action est défini dans le contrôleur lors de l'utilisation de before_action Une méthode qui permet d'effectuer un traitement commun avant qu'une action ne soit exécutée. En d'autres termes, il est utilisé lorsque vous souhaitez effectuer un traitement avant d'exécuter l'action du contrôleur de rails, ou lorsque vous souhaitez combiner le traitement d'une même description. </ font>
Même si cela est expliqué par des mots, "Doyukoto?", "Je ne peux pas imaginer ..." Je pense que je voudrais expliquer avec un exemple ci-dessous.
[Exemple] before_action
nom du contrôleur de classe< ApplicationController
before_action :Le nom de la méthode que vous souhaitez traiter
Nous utilisons également les options ici en même temps. Vous n'êtes pas obligé d'utiliser before_action pour chaque action, Spécifiez l'action que vous souhaitez traiter avant de l'exécuter. L'option utilisée ici est la seule option.
En utilisant la seule option comme avec les ressources , il est possible de limiter quelle action doit être exécutée avant son exécution. </ font>
"resources" </ font> est une méthode qui vous permet de définir le routage de 7 actions à la fois.
[Exemple] before_action
nom du contrôleur de classe< ApplicationController
before_action :Le nom de la méthode que vous souhaitez traiter, only: [:Nom de l'action, :Nom de l'action]
Utilisez la seule option après before_action comme décrit ci-dessus. Vous pouvez spécifier l'action en écrivant comme dans l'exemple.
Les bases sont décrites ci-dessus.
Comment écrire même si je me réfère à cet exemple? je pense que ce sera Ce qui suit est une explication de la description générale du contrôleur.
Ici, je voudrais expliquer en donnant un exemple de la description complète du contrôleur.
Ceci est un exemple de description lorsque before_action n'est pas utilisé en premier. J'aimerais que vous voyiez l'exemple ci-dessous, mais il y a la même description.
[Exemple] controller
class TweetsController < ApplicationController
def index
@tweets = Tweet.all
end
def new
@tweet = Tweet.new
end
def create
Tweet.create(tweet_params)
end
def destroy
tweet = Tweet.find(params[:id])
tweet.destroy
end
def edit
@tweet = Tweet.find(params[:id])⬅️ Ici! !!
end
def update
tweet = Tweet.find(params[:id])
tweet.update(tweet_params)
end
def show
@tweet = Tweet.find(params[:id])⬅️ Ici! !!
end
private
def tweet_params
params.require(:tweet).permit(:name, :image, :text)
end
end
En regardant les actions d'édition et d'affichage du contrôleur de tweets, @tweet = Tweet.find (params [: id]) </ font> est décrit à plusieurs reprises. Je voudrais résumer la description de cette partie.
Dans l'exemple ci-dessus, il y a une autre description qui est couverte, Cette fois, j'utiliserai before_action à un seul endroit, donc je vais le résumer. Ne t'en fais pas. w
Ce qui suit est un exemple de description lorsqu'il est utilisé.
Écrivez la description en exécutant "uniquement" le traitement de l'action d'édition et de l'action d'affichage Je voudrais le résumer. Cette fois, appelons la méthode before_action test_tweet!
[Exemple] controller
class TweetsController < ApplicationController
before_action :set_tweet, only: [:edit, :show]
def index
@tweets = Tweet.all
end
def new
@tweet = Tweet.new
end
def create
Tweet.create(tweet_params)
end
def destroy
tweet = Tweet.find(params[:id])
tweet.destroy
end
def edit
end
def update
tweet = Tweet.find(params[:id])
tweet.update(tweet_params)
end
def show
end
private
def tweet_params
params.require(:tweet).permit(:name, :image, :text)
end
def test_tweet
@tweet = Tweet.find(params[:id])
end
end
En utilisant before_action, modifiez l'action et affichez l'action Avant l'exécution, nous appelons une méthode appelée test_tweet.
Ce faisant, c'est un processus commun des deux actions. @tweet = Tweet.find (params [: id]) fonctionne.
Répétez en utilisant before_action comme dans l'exemple ci-dessus Il n'y a rien à décrire, donc c'est rafraîchissant et facile à voir! !!
· before_action est avant que l'action définie dans le contrôleur ne soit exécutée. Une méthode qui peut effectuer un traitement commun spécifié </ font> -La seule option utilise la seule option de la même manière que les ressources pour limiter l'action à exécuter avant de l'exécuter. </ Font>
!! !! Lorsque vous écrivez du code à partir de ces éléments, il est bon de l'écrire de manière facile à lire sans répéter la même description! !!
Recommended Posts