Ho appena iniziato a lavorare sulla mia prima app Phoenix e il problema è che ho alcune linee comuni di codice in ogni azione nel mio controller, che vorrei separare. Recuperano i dati da più modelli Ecto e li salvano in variabili da utilizzare.L'equivalente di before_filter di Rails a Phoenix
In Rails, ho potuto semplicemente definire un metodo e chiamarlo usando before_filter
nel mio controller. Potrei accedere al risultato da un @variable
. Capisco che l'utilizzo Plugs
è la chiave, ma io sono poco chiare su come raggiungere questo obiettivo, più precisamente:
- Accesso alla richiesta di
params
da unPlug
- e rendendo le variabili accessibile in azioni
Come riferimento, questa è la versione rotaie di quello che sto cercando di fare:
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
Grazie!
L'intero Plug.Conn api è già importato, quindi è possibile eseguire 'assign (conn,: something,: some_data)' –