diff --git a/lib/active_relation/relations/insertion.rb b/lib/active_relation/relations/insertion.rb index 901ff6eb70..30de6819f1 100644 --- a/lib/active_relation/relations/insertion.rb +++ b/lib/active_relation/relations/insertion.rb @@ -3,7 +3,7 @@ module ActiveRelation attr_reader :record def initialize(relation, record) - @relation, @record = relation, record + @relation, @record = relation, record.bind(relation) end def to_sql(formatter = nil) diff --git a/lib/active_relation/relations/relation.rb b/lib/active_relation/relations/relation.rb index 36c13bec51..eebfd48e30 100644 --- a/lib/active_relation/relations/relation.rb +++ b/lib/active_relation/relations/relation.rb @@ -63,11 +63,11 @@ module ActiveRelation module Writes def insert(record) - session.create Insertion.new(self, record.bind(self)); self + session.create Insertion.new(self, record); self end def update(assignments) - session.update Update.new(self, assignments.bind(self)); self + session.update Update.new(self, assignments); self end def delete diff --git a/lib/active_relation/relations/update.rb b/lib/active_relation/relations/update.rb index 7eb78d5473..46aafd38a5 100644 --- a/lib/active_relation/relations/update.rb +++ b/lib/active_relation/relations/update.rb @@ -3,7 +3,7 @@ module ActiveRelation attr_reader :assignments def initialize(relation, assignments) - @relation, @assignments = relation, assignments + @relation, @assignments = relation, assignments.bind(relation) end def to_sql(formatter = nil) diff --git a/spec/active_relation/unit/relations/insertion_spec.rb b/spec/active_relation/unit/relations/insertion_spec.rb index b74ec6c7cb..e01e7792e2 100644 --- a/spec/active_relation/unit/relations/insertion_spec.rb +++ b/spec/active_relation/unit/relations/insertion_spec.rb @@ -9,7 +9,7 @@ module ActiveRelation describe '#to_sql' do describe 'when given values whose types correspond to the types of the attributes' do before do - @insertion = Insertion.new(@relation, @relation[:name] => "nick".bind(@relation)) + @insertion = Insertion.new(@relation, @relation[:name] => "nick") end it 'manufactures sql inserting data' do @@ -23,7 +23,7 @@ module ActiveRelation describe 'when given values whose types differ from from the types of the attributes' do before do - @insertion = Insertion.new(@relation, @relation[:id] => '1-asdf'.bind(@relation)) + @insertion = Insertion.new(@relation, @relation[:id] => '1-asdf') end it 'manufactures sql inserting data' do @@ -37,7 +37,7 @@ module ActiveRelation describe 'when given values whose types correspond to the type of the attribtues' do before do - @insertion = Insertion.new(@relation, @relation[:name] => "nick".bind(@relation)) + @insertion = Insertion.new(@relation, @relation[:name] => "nick") end it 'manufactures sql inserting data' do @@ -52,7 +52,7 @@ module ActiveRelation describe '#call' do before do - @insertion = Insertion.new(@relation, @relation[:name] => "nick".bind(@relation)) + @insertion = Insertion.new(@relation, @relation[:name] => "nick") end it 'executes an insert on the connection' do diff --git a/spec/active_relation/unit/relations/relation_spec.rb b/spec/active_relation/unit/relations/relation_spec.rb index 7bb85d7270..682ec88f10 100644 --- a/spec/active_relation/unit/relations/relation_spec.rb +++ b/spec/active_relation/unit/relations/relation_spec.rb @@ -138,7 +138,7 @@ module ActiveRelation it 'manufactures an insertion relation' do Session.start do record = {@relation[:name] => 'carl'} - mock(Session.new).create(Insertion.new(@relation, record.bind(@relation))) + mock(Session.new).create(Insertion.new(@relation, record)) @relation.insert(record).should == @relation end end @@ -148,7 +148,7 @@ module ActiveRelation it 'manufactures an update relation' do Session.start do assignments = {@relation[:name] => Value.new('bob', @relation)} - mock(Session.new).update(Update.new(@relation, assignments.bind(@relation))) + mock(Session.new).update(Update.new(@relation, assignments)) @relation.update(assignments).should == @relation end end diff --git a/spec/active_relation/unit/relations/update_spec.rb b/spec/active_relation/unit/relations/update_spec.rb index 9053f292d6..5c234fe759 100644 --- a/spec/active_relation/unit/relations/update_spec.rb +++ b/spec/active_relation/unit/relations/update_spec.rb @@ -9,7 +9,7 @@ module ActiveRelation describe '#to_sql' do describe 'when given values whose types correspond to the types of the attributes' do before do - @update = Update.new(@relation, @relation[:name] => "nick".bind(@relation)) + @update = Update.new(@relation, @relation[:name] => "nick") end it 'manufactures sql updating attributes' do @@ -22,7 +22,7 @@ module ActiveRelation describe 'when given values whose types differ from from the types of the attributes' do before do - @update = Update.new(@relation, @relation[:id] => '1-asdf'.bind(@relation)) + @update = Update.new(@relation, @relation[:id] => '1-asdf') end it 'manufactures sql updating attributes' do @@ -37,7 +37,7 @@ module ActiveRelation before do @update = Update.new( @relation.select(@relation[:id].eq(1)), - @relation[:name] => "nick".bind(@relation) + @relation[:name] => "nick" ) end @@ -53,7 +53,7 @@ module ActiveRelation describe '#call' do before do - @update = Update.new(@relation, @relation[:name] => "nick".bind(@relation)) + @update = Update.new(@relation, @relation[:name] => "nick") end it 'executes an update on the connection' do