diff --git a/README.md b/README.md index 7a5a15c..e1405c2 100644 --- a/README.md +++ b/README.md @@ -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/). -_467 TILs and counting..._ +_468 TILs and counting..._ --- @@ -24,6 +24,7 @@ _467 TILs and counting..._ * [JavaScript](#javascript) * [Linux](#linux) * [Mac](#mac) +* [Phoenix](#phoenix) * [PostgreSQL](#postgresql) * [Rails](#rails) * [Ruby](#ruby) @@ -188,6 +189,10 @@ _467 TILs and counting..._ - [List All The Say Voices](mac/list-all-the-say-voices.md) - [Resizing Both Corners Of A Window](mac/resizing-both-corners-of-a-window.md) +### Phoenix + +- [Render A Template To A String](phoenix/render-a-template-to-a-string.md) + ### PostgreSQL - [A Better Null Display Character](postgres/a-better-null-display-character.md) diff --git a/phoenix/render-a-template-to-a-string.md b/phoenix/render-a-template-to-a-string.md new file mode 100644 index 0000000..640cfed --- /dev/null +++ b/phoenix/render-a-template-to-a-string.md @@ -0,0 +1,24 @@ +# Render A Template To A String + +Templates in a Phoenix application ultimately get compiled to functions that +can be quickly rendered with the necessary data. We can take a look at how a +template will be rendered using +[`Phoenix.View.render_to_string/3`](https://hexdocs.pm/phoenix/Phoenix.View.html#render_to_string/3). + +First, we need a template: + +```elixir +# user.html.eex +

<%= @user.first_name %>

+
<%= @user.username %> (<%= @user.email %>)
+``` + +We can then render that template for the view with some user: + +```elixir +> user = %User{first_name: "Liz", last_name: "Lemon", username: "llemon", email: "lizlemon@nbc.com"} +%MyApp.User{...} + +> Phoenix.View.Render_to_string(MyApp.UserView, "user.html", user: user) +"

Liz

\n
llemon (lizlemon@nbc.com)
\n" +```