diff options
author | Adam Niedzielski <adamsunday@gmail.com> | 2017-06-29 17:14:12 +0300 |
---|---|---|
committer | Adam Niedzielski <adamsunday@gmail.com> | 2017-06-29 17:14:12 +0300 |
commit | a3d7983b18cc81607c255f64b678da0ab7b9477d (patch) | |
tree | 273b1109d9e3b1061c2251ebcd567e7aca0d9405 /app/models/concerns/sortable.rb | |
parent | da6a3fb0c24e2af59d6fbd3421446b8f7666cdf6 (diff) |
Revert "Merge branch 'dm-drop-default-scope-on-sortable-finders' into 'master'"
This reverts commit b07c00032b038f40796a28e34b6dd4c622bad012, reversing
changes made to 2b97d76d0b08a778710410df910a7601f6b8e9e7.
Diffstat (limited to 'app/models/concerns/sortable.rb')
-rw-r--r-- | app/models/concerns/sortable.rb | 23 |
1 files changed, 0 insertions, 23 deletions
diff --git a/app/models/concerns/sortable.rb b/app/models/concerns/sortable.rb index fdacfa5a194..a155a064032 100644 --- a/app/models/concerns/sortable.rb +++ b/app/models/concerns/sortable.rb @@ -5,25 +5,6 @@ module Sortable extend ActiveSupport::Concern - module DropDefaultScopeOnFinders - # Override these methods to drop the `ORDER BY id DESC` default scope. - # See http://dba.stackexchange.com/a/110919 for why we do this. - %i[find find_by find_by!].each do |meth| - define_method meth do |*args, &block| - return super(*args, &block) if block - - unordered_relation = unscope(:order) - - # We cannot simply call `meth` on `unscope(:order)`, since that is also - # an instance of the same relation class this module is included into, - # which means we'd get infinite recursion. - # We explicitly use the original implementation to prevent this. - original_impl = method(__method__).super_method.unbind - original_impl.bind(unordered_relation).call(*args) - end - end - end - included do # By default all models should be ordered # by created_at field starting from newest @@ -37,10 +18,6 @@ module Sortable scope :order_updated_asc, -> { reorder(updated_at: :asc) } scope :order_name_asc, -> { reorder(name: :asc) } scope :order_name_desc, -> { reorder(name: :desc) } - - # All queries (relations) on this model are instances of this `relation_klass`. - relation_klass = relation_delegate_class(ActiveRecord::Relation) - relation_klass.prepend DropDefaultScopeOnFinders end module ClassMethods |