I\'ve just started working on my first Phoenix app, and the issue is that I have some common lines of code in every action in my controller, that I would like to separate ou
You can indeed achieve this with a Plug
and Plug.Conn.assign.
defmodule TestApp.PageController do
use TestApp.Web, :controller
plug :store_something
# This line is only needed in old phoenix, if your controller doesn't
# have it already, don't add it.
plug :action
def index(conn, _params) do
IO.inspect(conn.assigns[:something]) # => :some_data
render conn, "index.html"
end
defp store_something(conn, _params) do
assign(conn, :something, :some_data)
end
end
Remember to add the plug declaration before your action plug, as they are executed in-order.