Ich habe gerade angefangen, an meiner ersten Phoenix App zu arbeiten, und das Problem ist, dass ich in jeder Aktion in meinem Controller einige gemeinsame Codezeilen habe, die ich gerne trennen würde. Sie holen Daten von mehreren Ecto-Modellen und speichern sie für die Verwendung in Variablen.Rails 'before_filter äquivalent in Phoenix
In Rails, ich könnte einfach eine Methode definieren und rufen Sie before_filter
in meinem Controller. Ich könnte auf das Ergebnis von einem @variable
zugreifen. Ich verstehe, dass Plugs
mit der Schlüssel ist, aber ich bin unklar, wie dies zu erreichen, genauer gesagt:
- die Anfrage Zugriff auf
params
von einemPlug
- und machen die Variablen zugänglich in Aktionen
Als Referenz ist dies die Schienen-Version von dem, was ich versuche zu tun:
class ClassController < ApplicationController
before_filter :load_my_models
def action_one
# Do something with @class, @students, @subject and @topics
end
def action_two
# Do something with @class, @students, @subject and @topics
end
def action_three
# Do something with @class, @students, @subject and @topics
end
def load_my_models
@class = Class.find params[:class_id]
@subject = Subject.find params[:subject_id]
@students = @class.students
@topics = @subject.topics
end
end
Danke!
Die gesamte Plug.Conn API ist bereits importiert, Sie können also 'assign (conn,: something,: some_data)' ' –