diff --git a/elasticsearch-model/lib/elasticsearch/model/adapters/active_record.rb b/elasticsearch-model/lib/elasticsearch/model/adapters/active_record.rb index 23c4267fa..0a39b861b 100644 --- a/elasticsearch-model/lib/elasticsearch/model/adapters/active_record.rb +++ b/elasticsearch-model/lib/elasticsearch/model/adapters/active_record.rb @@ -56,7 +56,10 @@ def order(*args) # Redefine the `to_a` method to the original one # sql_records.instance_exec do - define_singleton_method(:to_a) do + ar_records_method_name = :to_a + ar_records_method_name = :records if defined?(::ActiveRecord) && ::ActiveRecord::VERSION::MAJOR >= 5 + + define_singleton_method(ar_records_method_name) do if defined?(::ActiveRecord) && ::ActiveRecord::VERSION::MAJOR >= 4 self.load else diff --git a/elasticsearch-model/test/integration/active_record_basic_test.rb b/elasticsearch-model/test/integration/active_record_basic_test.rb index 02c7b24c3..38cb10301 100644 --- a/elasticsearch-model/test/integration/active_record_basic_test.rb +++ b/elasticsearch-model/test/integration/active_record_basic_test.rb @@ -223,8 +223,10 @@ def as_indexed_json(options = {}) if defined?(::ActiveRecord) && ::ActiveRecord::VERSION::MAJOR >= 4 assert_equal 'Testing Coding', response.records.order(title: :desc).first.title + assert_equal 'Testing Coding', response.records.order(title: :desc)[0].title else assert_equal 'Testing Coding', response.records.order('title DESC').first.title + assert_equal 'Testing Coding', response.records.order('title DESC')[0].title end end