我不得不使用Ecto.Adapters.SQL.query!/ 4来查询我的数据库。 效果很好,并返回了我期望的结果。
当我尝试使用<%= for result <- @results do %>
在Phoenix页面上显示结果时,出现此错误
protocol Enumerable not implemented for %Mariaex.Result{...}
所以问题是,如何枚举结果以将它们显示在HTML表中?
Dogbert使我走上了正确的轨道,但最终我还是这样做了,以便可以对每个表单元格进行单独控制(例如,分配类,属性等)。
<%= for row <- @results.rows do %>
<% [field_1, field_2, field_3, field_4, field_5, _, _, _] = row %>
<tr>
<td nowrap><%= field_1 %></td>
<td class="fancy><%= field_2 %></td>
...
答案 0 :(得分:1)
根据README,字段的数据存储在结构的rows
字段中,列名位于columns
中。要将它们转换为键/值对,可以使用Enum.zip
。这应该起作用:
<%= for row <- @results.rows do %>
<%= for {column, value} <- Enum.zip(@results.columns, row) do %>
<%= inspect {column, value} %>
<% end %>
<% end %>
PS:我将变量重命名为@result
。