aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/active_relation/relations/deletion.rb3
-rw-r--r--lib/active_relation/relations/update.rb3
-rw-r--r--spec/active_relation/unit/relations/deletion_spec.rb12
-rw-r--r--spec/active_relation/unit/relations/update_spec.rb12
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