0

私はこのようなものを持っています:

%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.

私はこれらすべてに非常に慣れておらず、これらのパズルのピースをまとめることができないので、ボタンが必要です。必要な並べ替え方法には、その並べ替え可能な方法のサンプルがいくつかありますが、配置方法がわかりません。これらすべてを一緒にして、これを解決します。

  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
4

1 に答える 1

1
= link_to 'Reset sorting', params.merge(:teachers => {:sort_column => 'teacher_name', :sort_direction => 'asc'}), :class => 'btn'
于 2013-03-16T20:04:21.343 に答える