Jun*_*ooq 4 elixir phoenix-framework
我有一个具有如下值的对象
%{"Friday" => [], "Monday" => [], "Saturday" => [], "Sunday" => ["3:0-4:0", "6:0-7:0"], "Thursday" => [], "Tuesday" => [], "Wednesday" => []}
Run Code Online (Sandbox Code Playgroud)
我想在我的电子邮件模板的视图中显示它,我刚才说
<p>Schedule: <%= @schedule %></p>
Run Code Online (Sandbox Code Playgroud)
我得到了这个错误
** (Protocol.UndefinedError) protocol Phoenix.HTML.Safe not implemented for %{"Friday" => [], "Monday" => [], "Saturday" => [], "Sunday" => ["3:0-4:0", "6:0-7:0"], "Thursday" => [], "Tuesday" => [], "Wednesday" => []}
Run Code Online (Sandbox Code Playgroud)
在HTML中显示它的最佳方式是什么?
Dog*_*ert 13
你无法直接输出这样的地图; 只有实现Phoenix.HTML.Safe
协议的东西.如果要打印iex
要打印的内容(如果可能,则为Elixir语法),可以显式调用inspect
将Map转换为String,然后输出:
<p>Schedule: <%= inspect @schedule %></p>
Run Code Online (Sandbox Code Playgroud)
如果要以不同方式打印,可以使用for
:
<p>
Schedule:
<%= for {key, value} <- @schedule do %>
...use key and value variables here...
<% end %>
</p>
Run Code Online (Sandbox Code Playgroud)