O equivalente before_filter do Rails em Phoenix
Acabei de começar a trabalhar no meu primeiro aplicativo Phoenix, e o problema é que tenho algumas linhas de código comuns em todas as ações do meu controlador, que gostaria de separar. Eles buscam dados de vários modelos Ecto e os salvam em variáveis para uso.
No Rails, eu poderia simplesmente definir um método e chamá-lo usandobefore_filter
no meu controlador. Eu pude acessar o resultado de um@variable
. Eu entendo que usandoPlugs
é a chave, mas não estou claro como conseguir isso, mais especificamente:
params
a partir de umPlug
e tornar as variáveis acessíveis em açõesComo referência, esta é a versão rails do que estou tentando fazer:
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
Obrigado!