1
是否有ActiveRecord執行自定義SQL查詢並讓它返回一個數組的數組,其中第一行是列名稱,每個後面的行是行數據?我要執行類似:如何獲得ActiveRecord查詢結果中的行和列?
connection.select_rows_with_headers "SELECT id, concat(first_name, ' ', last_name) as name, email FROM users"
並使其返回:
[["id","name","email"],["1","Bob Johnson","[email protected]"],["2","Joe Smith","[email protected]"]]
這將允許我打印自定義查詢結果以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
不起作用,因爲每個散列中的鍵都是無序的,所以您已經失去了查詢中指定的結果排序。
不,不工作,因爲哈希鍵無序 – pjb3
的查詢並不總是會SELECT *。他們可能會有一些列或列的子集根據聚合計算等。我更新了問題以使其更清楚。 – pjb3
是的,all_arrays正是我所期待的。希望那裏有一些非適配器特定的東西,但我確定爲sqlite,postgres和mysql開發並不難。謝謝! – pjb3