From 2c3e7c51f9b0dc91fec9e4b710d187a4fac8fdfc Mon Sep 17 00:00:00 2001 From: ayaya Date: Fri, 7 Feb 2014 16:08:07 +0800 Subject: [PATCH] add custom primary key support --- .../lib/elasticsearch/model/adapters/active_record.rb | 2 +- elasticsearch-model/test/unit/adapter_active_record_test.rb | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/elasticsearch-model/lib/elasticsearch/model/adapters/active_record.rb b/elasticsearch-model/lib/elasticsearch/model/adapters/active_record.rb index b4f0ab6dc..e589a5830 100644 --- a/elasticsearch-model/lib/elasticsearch/model/adapters/active_record.rb +++ b/elasticsearch-model/lib/elasticsearch/model/adapters/active_record.rb @@ -13,7 +13,7 @@ module Records # Returns an `ActiveRecord::Relation` instance # def records - sql_records = klass.where(id: ids) + sql_records = klass.where(klass.primary_key => ids) # Re-order records based on the order from Elasticsearch hits # by redefining `to_a`, unless the user has called `order()` diff --git a/elasticsearch-model/test/unit/adapter_active_record_test.rb b/elasticsearch-model/test/unit/adapter_active_record_test.rb index b8cd31ded..80df07d71 100644 --- a/elasticsearch-model/test/unit/adapter_active_record_test.rb +++ b/elasticsearch-model/test/unit/adapter_active_record_test.rb @@ -40,7 +40,7 @@ def ids assert_instance_of Module, Elasticsearch::Model::Adapter::ActiveRecord::Records instance = DummyClassForActiveRecord.new - instance.expects(:klass).returns(mock('class', where: @records)) + instance.expects(:klass).returns(mock('class', primary_key: :some_key, where: @records)).at_least_once assert_equal @records, instance.records end @@ -55,7 +55,7 @@ def ids @records.instance_variable_set(:@records, @records) instance = DummyClassForActiveRecord.new - instance.expects(:klass).returns(mock('class', where: @records)) + instance.expects(:klass).returns(mock('class', primary_key: :some_key, where: @records)).at_least_once assert_equal [1, 2], @records. to_a.map(&:id) assert_equal [2, 1], instance.records.to_a.map(&:id) @@ -65,7 +65,7 @@ def ids @records.instance_variable_set(:@records, @records) instance = DummyClassForActiveRecord.new - instance.expects(:klass).returns(stub('class', where: @records)).at_least_once + instance.expects(:klass).returns(stub('class', primary_key: :some_key, where: @records)).at_least_once instance.records.expects(:order).returns(@records) assert_equal [2, 1], instance.records. to_a.map(&:id)