[RUBY] [Spezifische Verwendung von before_action] Rails-Refactoring

Was ist before_action?

before_action ist eine Art von Refactoring, das mit Rails-Controllern verwendet werden kann.

** Wenn Sie before_action verwenden Allgemeine Aktionen können ausgeführt werden, bevor die in der Steuerung definierten Aktionen ausgeführt werden. ** ** **

Spezifische Verwendung

Werfen wir einen Blick auf die folgenden Controller.

app/controllers/tweets_controller.rb


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])
  end

  def update
    tweet = Tweet.find(params[:id])
    tweet.update(tweet_params)
  end

  def show
    @tweet = Tweet.find(params[:id])
  end
  
  private
  def tweet_params
    params.require(:tweet).permit(:distance, :image)
  end
end

Wenn Sie genau hinschauen, von den sieben Aktionen von Rails, Der Inhalt der Bearbeitungs- und Showaktionen ist @tweet = Tweet.find(params[:id]) Wird wiederholt verwendet.

Um ** die Lesbarkeit eines solchen Codes zu überarbeiten und zu verbessern **, Verwenden Sie before_action wie folgt:

app/controllers/tweets_controller.rb


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 set_tweet
    @tweet = Tweet.find(params[:id])
  end
end

auf diese Weise, Mit before_action wird es vor zwei Aktionen ausgeführt: Bearbeiten und Anzeigen. Definieren Sie eine neue Methode namens set_tweet (der Methodenname wird von Ihnen selbst festgelegt).

Ich habe es früher wiederholt benutzt @tweet = Tweet.find(params[:id]) Es wird möglich, zusammen zu stellen.

Zusammenfassung

Mit before_action Sie können verhindern, dass der Code redundant wird, und die Lesbarkeit des Codes verbessern!

Der diesmal als Beispiel angegebene Code lautet Der Inhalt der beiden Aktionen Bearbeiten und Anzeigen war der gleiche. Je mehr Code Sie wiederholt verwenden, desto größer ist der Effekt!

Als Rails Refactoring Bitte versuchen Sie zu referenzieren!

Recommended Posts

[Spezifische Verwendung von before_action] Rails-Refactoring
[Rails] Unterschiede und Verwendung von each_with_index und each.with_index
[Rails] Einführung von PAY.JP
Minimaler Einsatz von Mockito
Implementierung der Ajax-Entfernung in Rails
[Rails] Einführung in die Grundlagen der Entwicklung
[Java] Mirage-Basic-Verwendung von SQL
[Rails] Implementierung der Kategoriefunktion
Super grundlegende Verwendung von Eclipse
[Rails] Implementierung der Tutorial-Funktion