Module: Sortify

Defined in:
app/controllers/concerns/sortify.rb

Instance Method Summary collapse

Instance Method Details

#apply_sorting(chain, order_class = resource_class) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
# File 'app/controllers/concerns/sortify.rb', line 3

def apply_sorting(chain, order_class = resource_class)
  params[:order] ||= 'id_desc'
  if params[:order] && params[:order] =~ /^([\w\_\.]+)_(desc|asc)$/
    column = $1
    order  = $2
    table  = order_class.column_names.include?(column) ? order_class.table_name : nil
    table_column = (column =~ /\./) ? column : [table, order_class.connection.quote_column_name(column)].compact.join(".")
    chain.reorder("#{table_column} #{order}")
  else
    chain
  end
end