所以我的所有列都排序没有问题,除了我的Media列显示文件大小限制(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]]} );
}
);
答案 0 :(得分:1)
要正确排序文件大小,您需要一个解析器将“GB”和“TB”等转换为可排序的数字。
我的metric parser - fork of tablesorter上有一个demo可转换指标&二进制值使排序工作。
要使用它,请加载解析器文件,然后添加sorter-metric
和data-metric-name
属性:
<th class="sorter-metric" data-metric-name="b|byte">Media</th>
我还没有测试过它,但是如果你使用的是原始的tablesorter,那么这个解析器应该仍然有效。如果是这种情况,分拣机类名称将不起作用,因此您需要设置headers
选项:
headers: {
0 : { sorter: 'metric' }
}