module SortableTable::ActionViewExtension
Public Instance Methods
sort_by(column, options = {})
click to toggle source
# File lib/sortable_table/helpers/action_view_extension.rb, line 3 def sort_by(column, options = {}) current_column = options.delete(:current_column) || SortableTable::SortColumn.new(nil, nil) title = options.delete(:title) || column.titleize prefix = options.delete(:prefix) is_current_column = column == current_column.column options_class = options.delete(:class) css_class = is_current_column ? "current #{current_column.direction} #{options_class}" : options_class direction = is_current_column && current_column.direction == 'asc' ? 'desc' : 'asc' sort_params = { "#{prefix}sort" => column, "#{prefix}direction" => direction, "#{prefix}page" => nil } if options.has_key?(:route_method) goto = options.delete(:route_method).call sort_params else goto = params.merge( sort_params ) end link_to title, goto, options.merge( {class: css_class } ) end