I just updated a pretty big api-only app running Phoenix 1.6 to 1.7 and everything went smoothy except for one thing that appears no longer to be supported: I was using Phoenix.Template
to render ad hoc html in various context functions in order to generate PDFs, via render_template/2
. This function no longer exists in the new version of that module.
The original code looked something like this:
use Phoenix.Template, root: "lib/my_app/context/templates"
def make_pdf, do: render_template("form.pdf", %{some: "assign"})
After upgrading, these contexts failed to compile with the error undefined function render_template/2
. Fortunately, although templates are one of the areas with the biggest changes in the 1.7 release, most of those changes are about decoupling, so ad hoc rendering is pretty much just as easy:
import Phoenix.Template, only: [embed_templates: 1]
embed_templates "templates/*"
def make_pdf, do: form(%{some: "assign")
Not bad. This feels just a tad more obscure without the “render” verbiage, so I may actually move this logic into a separate module.
Hope this helps! Or, if you are solving a similar problem differently, please share below.