Module: Sortable

Extended by:
ActiveSupport::Concern
Included in:
CollectionsController
Defined in:
app/controllers/concerns/sortable.rb

Instance Method Summary collapse

Instance Method Details

#apply_sort_order(scope) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
# File 'app/controllers/concerns/sortable.rb', line 25

def apply_sort_order(scope)
  case current_ordering
  when "recent"
    scope.order(created_at: :desc)
  when "updated"
    scope.order(updated_at: :desc)
  when "name"
    scope.order(name_lower: :asc)
  else
    scope
  end
end

#current_ordering ⇒ Object



8
9
10
11
12
13
14
# File 'app/controllers/concerns/sortable.rb', line 8

def current_ordering
  if current_user
    current_user.sort_order.to_s
  else
    session["order"].to_s
  end
end

#remember_ordering ⇒ Object



16
17
18
19
20
21
22
23
# File 'app/controllers/concerns/sortable.rb', line 16

def remember_ordering
  if current_user
    current_user.update!(sort_order: params["order"]) if params["order"].presence
  else
    session["order"] ||= "name"
    session["order"] = params["order"] if params["order"].presence
  end
end