【发布时间】:2016-06-15 03:10:31
【问题描述】:
我想为我的表创建可排序的列,该列根据哈希值对数据进行制表。关注http://railscasts.com/episodes/228-sortable-table-columns?view=asciicast。据我了解,order 方法只能用于整理模型。为此类表排序列的最佳方法是什么。如前所述,我有 29 个类似的表格。我的代码如下:-
admins_controller.rb
class AdminsController < ApplicationController
array =[]
User.each do |user|
company_name = Company.find(user.company_id).name
array.push(company_name)
end
company = array.inject(Hash.new(0)) { |h, e| h[e] += 1 ; h }
end
上述查询的结果如下所示:-
array = [["3M", 4], ["A.P. Møller-Mærsk Group", 10], ["ABB", 14], ["Abbott Laboratories", 12]]
关于视图:-
admins.html.erb
<table class="table">
<tr>
<th><%= link_to "Company", remote: true, :sort => "hash" %></th>
<th><%= link_to "Value", remote: true, :sort => "key" %></th>
<th><%= link_to "Percentage", remote: true, :sort => "Percentage" %></th>
</tr>
<% if @mentors.try(:any?) %>
<% @mentors.each do |key, value| %>
<tr>
<td><%= key %></td>
<td><%= value %> </td>
<td><%= ((value.to_f/@total_co.to_f).to_f * 100 ).round(2)%> </td>
</tr>
<% end %>
<% else %>
<td> nil </td>
<td> nil </td>
<td> nil </td>
<% end %>
</table>
【问题讨论】:
标签: ruby-on-rails sorting dynamic hash html-table