jQuery Rails 应用程序中的 Tablesorter 文件大小
jQuery Tablesorter File Size in Rails App
所以我的所有列排序都没有问题,除了我的媒体列显示文件大小限制配额(GB、TB 等)我怀疑 Rails NumberHelper number_to_human_size
不是不能很好地使用 tablesorter。有人知道如何在使用 NumberHelper 的同时对其进行排序吗?
_table.html.haml
%table#myTable.tablesorter
%thead
%tr
%th Name
%th.right Per Month
%th.right Members
%th.right Additional
%th.right Media
%th.right Subscriptions
- if @plans.any?
%tbody
- @plans.each do |plan|
%tr
%td
= link_to admin_plan_path(plan) do
= plan.name
%td.right
= "$ #{plan.base_price_in_cents / 100}"
%td.right
= plan.included_users
%td.right
= "$ #{plan.price_in_cents / 100}"
%td.right
= number_to_human_size(plan.media_data_quota) || '∞'.html_safe
%td.right
= link_to organizations_admin_plan_path(plan) do
= plan.subscriptions.count
application.js
$(document).ready(function()
{
$("#myTable").tablesorter( {sortList: [[0,0], [1,0]]} );
}
);
为了使文件大小正确排序,您需要一个解析器来将 "GB" 和 "TB" 等转换为可排序的数字。
有一个 metric parser available on my fork of tablesorter - demo 可以转换公制和二进制值以进行排序。
要使用它,加载解析器文件,然后添加 sorter-metric
和 data-metric-name
属性:
<th class="sorter-metric" data-metric-name="b|byte">Media</th>
我还没有测试过,但如果你使用的是原始的 tablesorter,这个解析器应该仍然可以工作。如果是这种情况,排序器 class 名称将不起作用,因此您需要设置 headers
选项:
headers: {
0 : { sorter: 'metric' }
}
所以我的所有列排序都没有问题,除了我的媒体列显示文件大小限制配额(GB、TB 等)我怀疑 Rails NumberHelper number_to_human_size
不是不能很好地使用 tablesorter。有人知道如何在使用 NumberHelper 的同时对其进行排序吗?
_table.html.haml
%table#myTable.tablesorter
%thead
%tr
%th Name
%th.right Per Month
%th.right Members
%th.right Additional
%th.right Media
%th.right Subscriptions
- if @plans.any?
%tbody
- @plans.each do |plan|
%tr
%td
= link_to admin_plan_path(plan) do
= plan.name
%td.right
= "$ #{plan.base_price_in_cents / 100}"
%td.right
= plan.included_users
%td.right
= "$ #{plan.price_in_cents / 100}"
%td.right
= number_to_human_size(plan.media_data_quota) || '∞'.html_safe
%td.right
= link_to organizations_admin_plan_path(plan) do
= plan.subscriptions.count
application.js
$(document).ready(function()
{
$("#myTable").tablesorter( {sortList: [[0,0], [1,0]]} );
}
);
为了使文件大小正确排序,您需要一个解析器来将 "GB" 和 "TB" 等转换为可排序的数字。
有一个 metric parser available on my fork of tablesorter - demo 可以转换公制和二进制值以进行排序。
要使用它,加载解析器文件,然后添加 sorter-metric
和 data-metric-name
属性:
<th class="sorter-metric" data-metric-name="b|byte">Media</th>
我还没有测试过,但如果你使用的是原始的 tablesorter,这个解析器应该仍然可以工作。如果是这种情况,排序器 class 名称将不起作用,因此您需要设置 headers
选项:
headers: {
0 : { sorter: 'metric' }
}