[RUBY] Utilisez before_action! !!

Qu'est-ce que before_action?

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 de description before_action

[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.

Quelle est la seule option? (Exemple de description)

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.

Exemple de description complète 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.

Lorsqu'il n'est pas utilisé

[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é.

Lors de l'utilisation

É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! !!

Résumé

· 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! !!