Я хотел бы создать сортируемые столбцы для моей таблицы, которые собирают данные на основе хэшей. Следуя http://railscasts.com/episodes/228-sortable-table-columns?view=asciicast. Из того, что я понимаю, заказать метод будет работать только при сортировке модели. Каков наилучший способ сортировки столбцов для таких таблиц. У меня есть 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]]
На просмотров: -
админы .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>