Rendering views
Having explored how controllers work in Phoenix, we'll now look at the next step: rendering views. A view is a module that contains rendering functions, whose purpose is to convert data to a format that end users will consume. Continuing the example we gave in the two previous sections, we'll look at files and how they're rendered in our application. We'll create a file view module, named ElixirDripWeb.FileView
. Here's the code for it:
$ cat apps/elixir_drip_web/lib/elixir_drip_web/views/file_view.ex defmodule ElixirDripWeb.FileView do use ElixirDripWeb, :view def parent_directory(path) do Path.dirname(path) end end
First of all, the name we're giving to this module is important. As we've seen in the previous section, the file controller never mentioned the view module when rendering a response. We were able to do this because Phoenix infers the name of the view module from the name of the controller module. To avoid confusion on this matter, Phoenix always uses...