Module: SortableTable::ActionViewExtension

Defined in:
lib/sortable_table/helpers/action_view_extension.rb

Instance Method Summary collapse

Instance Method Details

#sort_by(column, options = {}) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
# File 'lib/sortable_table/helpers/action_view_extension.rb', line 3

def sort_by(column, options = {})
  current_column = options[:current_column] || SortableTable::SortColumn.new(nil, nil)
  title = options[:title] || column.titleize
  prefix = options[:prefix]
  is_current_column = column == current_column.column
  css_class = is_current_column ? "current #{current_column.direction}" : nil
  direction = is_current_column && current_column.direction == 'asc' ? 'desc' : 'asc'
  link_to title, params.merge("#{prefix}sort" => column,
                              "#{prefix}direction" => direction,
                              "#{prefix}page" => nil),
          class: css_class
end