单击按钮进行排序

时间:2013-03-16 19:43:38

标签: ruby-on-rails ruby-on-rails-3.2

我有这样的事情:

%section
  %h1= t('.MyTableData')
  .row-fluid
    .span8
      %table.table
        %thead
          %tr
            %th= sortable('teachers', 'teacher_name', 'true')
            %th= sortable('teachers', 'teacher_score')
            %th= sortable('teachers', 'specialty')
        %tbody
          - @teachers.each do |teacher|
            %tr
              %td= as_full_name(teacher[:first_name], teacher[:last_name])
              %td= number_to_percentage(provider[:teacher_score], precision: 0)
              %td= provider[:specialty_name]                  
    .span2
      =render partial: 'search'

所以它创建了一个包含一些列的表,如果我点击像teacher_name这样的列标题,它将根据使用该可排序方法的表对表进行排序。

现在我想添加一个简单的Twitter引导程序按钮"重置排序" ,当我点击它时应重置这些排序我们有通过单击列标题完成,然后仅按teacher_name.

对其进行排序

我对这一切都很陌生并且无法将这些拼图拼凑在一起,所以我需要一个按钮,我需要的排序方法是可分类方法中的一些样本,但可以&#39 ;弄清楚如何将所有这些放在一起并解决这个问题。

  def sortable(table, column, default_column = false)
    table_params = params[table] || {}

    same_sort_column = same_sort_column(table_params, column, default_column)
    current_sort_direction = sort_direction(table_params)

    new_direction = same_sort_column && current_sort_direction == 'asc' ? 'desc' : 'asc'

    link_to(t(".#{column}"), params.merge(table => { sort_column: column, sort_direction: new_direction }))
  end

1 个答案:

答案 0 :(得分:1)

= link_to 'Reset sorting', params.merge(:teachers => {:sort_column => 'teacher_name', :sort_direction => 'asc'}), :class => 'btn'