Rails 'before_filter-Äquivalent in Phoenix
Ich habe gerade mit der Arbeit an meiner ersten Phoenix-App begonnen und das Problem ist, dass ich in jeder Aktion in meinem Controller einige gemeinsame Codezeilen habe, die ich gerne trennen möchte. Sie rufen Daten aus mehreren Ecto-Modellen ab und speichern sie zur Verwendung in Variablen.
n Rails könnte ich einfach eine Methode definieren und mit @ aufrufbefore_filter
in meinem Controller. Ich konnte das Ergebnis von einem @ zugreif@variable
. Ich verstehe das mitPlugs
ist der Schlüssel, aber ich bin mir nicht sicher, wie ich das erreichen soll:
params
von einemPlug
und die Variablen in Aktionen zugänglich machenAls Referenz ist dies die Rails-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
Vielen Dank