【发布时间】:2015-09-06 15:14:42
【问题描述】:
我刚刚开始开发我的第一个 Phoenix 应用程序,问题是我的控制器中的每个操作都有一些共同的代码行,我想将它们分开。他们从多个 Ecto 模型中获取数据并将其保存到变量中以供使用。
在 Rails 中,我可以简单地定义一个方法并在我的控制器中使用 before_filter 调用它。我可以从@variable 访问结果。我知道使用Plugs 是关键,但我不清楚如何实现这一点,更具体地说:
- 从
Plug访问请求params - 并使变量在操作中可访问
作为参考,这是我正在尝试做的 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
谢谢!
【问题讨论】:
标签: ruby-on-rails elixir phoenix-framework