From f10d3be703cada60783c671866dd48194b800002 Mon Sep 17 00:00:00 2001 From: Nick Kallen Date: Sat, 23 Feb 2008 16:52:06 -0800 Subject: updating functionality --- lib/active_relation/relations/update.rb | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 lib/active_relation/relations/update.rb diff --git a/lib/active_relation/relations/update.rb b/lib/active_relation/relations/update.rb new file mode 100644 index 0000000000..d28608fdd5 --- /dev/null +++ b/lib/active_relation/relations/update.rb @@ -0,0 +1,17 @@ +module ActiveRelation + class Update < Compound + attr_reader :assignments + + def initialize(relation, assignments) + @relation, @assignments = relation, assignments + end + + def to_sql(strategy = nil) + [ + "UPDATE #{table_sql} SET", + assignments.inject([]) { |assignments, (attribute, value)| assignments << "#{attribute.to_sql} = #{value.to_sql}" }.join(" "), + ("WHERE #{selects.collect(&:to_sql).join('\n\tAND ')}" unless selects.blank?) + ].join("\n") + end + end +end \ No newline at end of file -- cgit v1.2.3