最初の Phoenix アプリの作業を開始したばかりですが、問題は、コントローラーのすべてのアクションに共通のコード行がいくつかあることです。これを分離したいと考えています。複数の Ecto モデルからデータを取得し、変数に保存して使用します。
before_filter
Rails では、単純にメソッドを定義し、それをコントローラーで使用して呼び出すことができました。から結果にアクセスできました@variable
。使用が鍵であることは理解してPlugs
いますが、これを達成する方法、より具体的には不明です。
params
からのリクエストへのアクセスPlug
- アクションで変数にアクセスできるようにする
参考までに、これは私がやろうとしていることのレールバージョンです:
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
ありがとう!