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:

Auf die Anfrage zugreifenparams von einemPlugund die Variablen in Aktionen zugänglich machen

Als 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

Antworten auf die Frage(4)

Ihre Antwort auf die Frage