Hier werde ich kurz erklären, was before_action ist.
before_action wird im Controller definiert, wenn before_action verwendet wird Eine Methode, mit der eine allgemeine Verarbeitung ausgeführt werden kann, bevor eine Aktion ausgeführt wird. Mit anderen Worten, es wird verwendet, wenn Sie die Verarbeitung ausführen möchten, bevor Sie die Controller-Aktion von Schienen ausführen, oder wenn Sie die Verarbeitung derselben Beschreibung kombinieren möchten. </ font>
Auch wenn es in Worten erklärt wird: "Doyukoto?", "Ich kann mir nicht vorstellen ..." Ich denke, ich möchte dies anhand eines Beispiels erläutern.
[Beispiel] before_action
Name des Klassencontrollers< ApplicationController
before_action :Der Name der Methode, die Sie verarbeiten möchten
Gleichzeitig nutzen wir hier auch die Optionen. Sie müssen before_action nicht für jede Aktion verwenden. Geben Sie an, welche Aktion Sie vor der Ausführung verarbeiten möchten. Die dort verwendete Option ist die einzige Option.
Durch Verwendung der einzigen Option wie bei -Ressourcen kann begrenzt werden, welche Aktion ausgeführt werden soll, bevor sie ausgeführt wird. </ font>
"resources" </ font> ist eine Methode, mit der Sie das Routing von 7 Aktionen gleichzeitig festlegen können.
[Beispiel] before_action
Name des Klassencontrollers< ApplicationController
before_action :Der Name der Methode, die Sie verarbeiten möchten, only: [:Aktionsname, :Aktionsname]
Verwenden Sie die einzige Option nach before_action wie oben beschrieben. Sie können die Aktion angeben, indem Sie wie im Beispiel schreiben.
Die Grundlagen sind wie oben beschrieben.
Wie soll ich schreiben, auch wenn ich mich auf dieses Beispiel beziehe? Ich denke, es wird Das Folgende ist eine Erläuterung der Gesamtbeschreibung der Steuerung.
Hier möchte ich anhand eines Beispiels die gesamte Beschreibung des Controllers erläutern.
Dies ist ein Beschreibungsbeispiel, wenn before_action nicht zuerst verwendet wird. Ich möchte, dass Sie das folgende Beispiel sehen, aber es gibt die gleiche Beschreibung.
[Beispiel] 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])⬅️ Hier! !!
end
def update
tweet = Tweet.find(params[:id])
tweet.update(tweet_params)
end
def show
@tweet = Tweet.find(params[:id])⬅️ Hier! !!
end
private
def tweet_params
params.require(:tweet).permit(:name, :image, :text)
end
end
Betrachten Sie die Aktionen zum Bearbeiten und Anzeigen des Tweets-Controllers. @tweet = Tweet.find (params [: id]) </ font> wird wiederholt beschrieben. Ich möchte die Beschreibung dieses Teils zusammenfassen.
Im obigen Beispiel wird eine andere Beschreibung behandelt: Dieses Mal werde ich before_action nur an einer Stelle verwenden, also werde ich es zusammenfassen. Habe nichts dagegen. w
Das Folgende ist ein Beschreibungsbeispiel, wenn es verwendet wird.
Schreiben Sie die Beschreibung, indem Sie "nur" die Bearbeitungsaktion ausführen und die Aktion anzeigen Ich möchte es zusammenfassen. Rufen wir dieses Mal die Methode before_action test_tweet auf!
[Beispiel] 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
Bearbeiten Sie mit before_action die Aktion und zeigen Sie die Aktion an Vor der Ausführung rufen wir eine Methode namens test_tweet auf.
Auf diese Weise ist es ein gemeinsamer Prozess der beiden Aktionen. @tweet = Tweet.find (params [: id]) funktioniert.
Wiederholen Sie diesen Vorgang mit before_action wie im obigen Beispiel Es gibt nichts zu beschreiben, es ist also erfrischend und leicht zu sehen! !!
· before_action ist vor der Ausführung der im Controller definierten Aktion. Eine Methode, die eine bestimmte allgemeine Verarbeitung </ font> ausführen kann - Die einzige Option verwendet die einzige Option auf dieselbe Weise wie Ressourcen, um zu begrenzen, welche Aktion vor der Ausführung ausgeführt werden soll. </ Font>
!! !! Wenn Sie Code aus diesen Dingen schreiben, ist es gut, ihn einfach zu lesen, ohne die gleiche Beschreibung zu wiederholen! !!
Recommended Posts