【问题标题】:protocol Phoenix.HTML.Safe not implemented Elixir Phoenix协议 Phoenix.HTML.Safe 未实现 Elixir Phoenix
【发布时间】:2017-04-19 16:42:55
【问题描述】:

我有一个对象,其值为

%{"Friday" => [], "Monday" => [], "Saturday" => [], "Sunday" => ["3:0-4:0", "6:0-7:0"], "Thursday" => [], "Tuesday" => [], "Wednesday" => []}

我想在我的电子邮件模板视图中显示它,我只是声明为

<p>Schedule: <%= @schedule %></p>

我收到了这个错误

** (Protocol.UndefinedError) protocol Phoenix.HTML.Safe not implemented for %{"Friday" => [], "Monday" => [], "Saturday" => [], "Sunday" => ["3:0-4:0", "6:0-7:0"], "Thursday" => [], "Tuesday" => [], "Wednesday" => []}

在 HTML 中显示它的最佳方式是什么?

【问题讨论】:

    标签: elixir phoenix-framework


    【解决方案1】:

    你不能直接输出这样的地图;只有实现Phoenix.HTML.Safe 协议的东西。如果您想打印iex 将打印的内容(如果可能,这是 Elixir 语法),您可以显式调用 inspect 将 Map 转换为字符串,然后输出:

    <p>Schedule: <%= inspect @schedule %></p>
    

    如果你想用不同的方式打印,可以使用for

    <p>
      Schedule: 
      <%= for {key, value} <- @schedule do %>
        ...use key and value variables here...
      <% end %>
    </p>
    

    【讨论】:

      猜你喜欢
      • 2017-07-01
      • 2016-10-20
      • 1970-01-01
      • 2017-12-11
      • 1970-01-01
      • 2016-05-09
      • 2018-11-23
      • 2015-09-03
      • 1970-01-01
      相关资源
      最近更新 更多