1
0
mirror of https://github.com/jbranchaud/til synced 2026-01-03 07:08:01 +00:00

Add Bypass Template Rendering as a phoenix til

This commit is contained in:
jbranchaud
2016-09-11 11:23:27 -05:00
parent 9fd0ef2e2a
commit 4501e052d0
2 changed files with 34 additions and 1 deletions

View File

@@ -0,0 +1,32 @@
# Bypass Template Rendering
Generally when rendering a response to a request in a Phoenix app, the
controller will make a render call that targets a specific template. If it
suits our needs, we can skip writing a template and bypass the template
portion of the response pipeline by implementing our own `render` function
directly in the view module.
Consider the following route and controller action:
```elixir
# web/router.ex
get "/hello", UserController, :hello
# web/controllers/user_controller.ex
def hello(conn, _params) do
render(conn, "hello.html")
end
```
The render call would normally trigger a corresponding template function,
but we bypass it by adding the following function to our view module:
```elixir
# web/views/user_view.ex
def render("hello.html", _assigns) do
"Hello, World!"
end
```
Visiting `/hello` will render a page with the view's layout and the words
"Hello, World!".