Я только начал работать над своим первым приложением Phoenix, и проблема в том, что у меня есть некоторые общие строки кода во всех действиях в моем контроллере, которые я хотел бы выделить. Они извлекают данные из нескольких моделей Ecto и сохраняют их в переменных для использования.
В Rails я мог просто определить метод и вызвать его с помощью before_filter
в моем контроллере. Я мог получить результат из @variable
. Я понимаю, что использование Plugs
- это ключ, но я не понимаю, как это сделать, а точнее:
- Доступ к запросу
params
изPlug
- и превращение переменных в действия
Как ссылка, это версия rails того, что я пытаюсь сделать:
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
Спасибо!