【发布时间】:2009-11-07 05:29:26
【问题描述】:
有没有办法使用 ActiveRecord 执行自定义 SQL 查询并让它返回一个数组数组,其中第一行是列名,接下来的每一行是行数据?我想执行类似的操作:
connection.select_rows_with_headers "SELECT id, concat(first_name, ' ', last_name) as name, email FROM users"
并让它返回:
[["id","name","email"],["1","Bob Johnson","bob@example.com"],["2","Joe Smith","joe@example.com"]]
这将允许我在 HTML 表格中打印自定义查询的结果,如下所示:
<table>
<% result.each_with_index do |r,i| %>
<tr>
<% r.each do |c| %>
<% if i == 0 %>
<th><%=h c %></th>
<% else %>
<td><%=h c %></td>
<% end %>
<% end %>
</tr>
<% end %>
</table>
请注意,select_all 不起作用,因为每个哈希中的键是无序的,因此您丢失了查询中指定的结果排序。
【问题讨论】:
标签: ruby-on-rails