diff options
-rw-r--r-- | lib/active_relation/relations/deletion.rb | 3 | ||||
-rw-r--r-- | lib/active_relation/relations/update.rb | 3 | ||||
-rw-r--r-- | spec/active_relation/unit/relations/deletion_spec.rb | 12 | ||||
-rw-r--r-- | spec/active_relation/unit/relations/update_spec.rb | 12 |
4 files changed, 14 insertions, 16 deletions
diff --git a/lib/active_relation/relations/deletion.rb b/lib/active_relation/relations/deletion.rb index 1b94df8729..f1d121d68f 100644 --- a/lib/active_relation/relations/deletion.rb +++ b/lib/active_relation/relations/deletion.rb @@ -8,7 +8,8 @@ module ActiveRelation [ "DELETE", "FROM #{table_sql}", - ("WHERE #{selects.collect(&:to_sql).join('\n\tAND ')}" unless selects.blank?) + ("WHERE #{selects.collect(&:to_sql).join('\n\tAND ')}" unless selects.blank? ), + ("LIMIT #{taken}" unless taken.blank? ), ].compact.join("\n") end diff --git a/lib/active_relation/relations/update.rb b/lib/active_relation/relations/update.rb index 5a7be31290..6262ead187 100644 --- a/lib/active_relation/relations/update.rb +++ b/lib/active_relation/relations/update.rb @@ -12,7 +12,8 @@ module ActiveRelation assignments.collect do |attribute, value| "#{value.format(attribute)} = #{attribute.format(value)}" end.join(",\n"), - ("WHERE #{selects.collect(&:to_sql).join('\n\tAND ')}" unless selects.blank?) + ("WHERE #{selects.collect(&:to_sql).join('\n\tAND ')}" unless selects.blank? ), + ("LIMIT #{taken}" unless taken.blank? ) ].join("\n") end diff --git a/spec/active_relation/unit/relations/deletion_spec.rb b/spec/active_relation/unit/relations/deletion_spec.rb index 46a962cb5c..08f7bc03bb 100644 --- a/spec/active_relation/unit/relations/deletion_spec.rb +++ b/spec/active_relation/unit/relations/deletion_spec.rb @@ -23,13 +23,11 @@ module ActiveRelation end it "manufactures sql deleting a ranged relation" do - pending do - Deletion.new(@relation.take(1)).to_sql.should be_like(" - DELETE - FROM `users` - LIMIT 1 - ") - end + Deletion.new(@relation.take(1)).to_sql.should be_like(" + DELETE + FROM `users` + LIMIT 1 + ") end end diff --git a/spec/active_relation/unit/relations/update_spec.rb b/spec/active_relation/unit/relations/update_spec.rb index 969b17436f..24beb315e5 100644 --- a/spec/active_relation/unit/relations/update_spec.rb +++ b/spec/active_relation/unit/relations/update_spec.rb @@ -15,13 +15,11 @@ module ActiveRelation end it "manufactures sql updating attributes when given a ranged relation" do - pending do - Update.new(@relation.take(1), @relation[:name] => "nick").to_sql.should be_like(" - UPDATE `users` - SET `users`.`name` = 'nick' - LIMIT 1 - ") - end + Update.new(@relation.take(1), @relation[:name] => "nick").to_sql.should be_like(" + UPDATE `users` + SET `users`.`name` = 'nick' + LIMIT 1 + ") end describe 'when given values whose types correspond to the types of the attributes' do |