If you do not have default_scope with order :
scope :ordered_by_title, -> { order(title: :asc) }
When you have default_scope with order , you need to use reorder :
default_scope { order(created_at: :desc) } scope :ordered_by_title, -> { reorder(title: :asc) }
or order with unscope :
default_scope { order(created_at: :desc) } scope :ordered_by_title, -> { order(title: :asc).unscope(:order) }
The reorder method overrides the default visibility order.
source share