From 9e46fb15ed602e05e9306b3a5cc3b1ccbeec755a Mon Sep 17 00:00:00 2001 From: Chris Salzberg Date: Sun, 25 Apr 2021 21:45:58 +0900 Subject: [PATCH] Check that class responds to mobility_attribute? --- lib/mobility/plugins/active_record/query.rb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/mobility/plugins/active_record/query.rb b/lib/mobility/plugins/active_record/query.rb index c9ecfe8df..9803d4dd9 100644 --- a/lib/mobility/plugins/active_record/query.rb +++ b/lib/mobility/plugins/active_record/query.rb @@ -137,6 +137,8 @@ def where(opts = :chain, *rest) end def order(opts, *rest) + return super unless @klass.respond_to?(:mobility_attribute?) + case opts when Symbol, String @klass.mobility_attribute?(opts) ? order({ opts => :asc }, *rest) : super @@ -161,6 +163,9 @@ def order(opts, *rest) define_method method_name do |*attrs, &block| return super(*attrs, &block) if (method_name == 'select' && block.present?) + if ::ActiveRecord::VERSION::STRING < '7.0' + return super(*attrs, &block) unless @klass.respond_to?(:mobility_attribute?) + end return super(*attrs, &block) unless attrs.any?(&@klass.method(:mobility_attribute?)) keys = attrs.dup