1
0
mirror of https://github.com/jbranchaud/til synced 2026-01-02 22:58: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

@@ -7,7 +7,7 @@ variety of languages and technologies. These are things that don't really
warrant a full blog post. These are mostly things I learn by pairing with
smart people at [Hashrocket](http://hashrocket.com/).
_469 TILs and counting..._
_470 TILs and counting..._
---
@@ -192,6 +192,7 @@ _469 TILs and counting..._
### Phoenix
- [Bypass Template Rendering](phoenix/bypass-template-rendering.md)
- [Render A Template To A String](phoenix/render-a-template-to-a-string.md)
### PostgreSQL

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!".