14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# File 'lib/sortable_table/app/controllers/application_controller.rb', line 14
def sortable_attributes(*args)
mappings = args.last.is_a?(Hash) ? args.pop : {}
acceptable_columns = args.collect(&:to_s) + mappings.keys.collect(&:to_s)
define_method(:sort_order) do |*default|
direction = params[:order] == 'ascending' ? 'asc' : 'desc'
column = params[:sort] || 'created_on'
if params[:sort] && acceptable_columns.include?(column)
column = mappings[column.to_sym] || column
"#{column} #{direction}"
else
"#{acceptable_columns.first} #{default_sort_direction(default)}"
end
end
end
|