aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/relation.rb
diff options
context:
space:
mode:
authorPratik Naik <pratiknaik@gmail.com>2009-12-28 14:24:52 +0530
committerPratik Naik <pratiknaik@gmail.com>2009-12-28 14:24:52 +0530
commitb95cc72429f83304b8e882c3637dfb3135a571ed (patch)
tree2278545c9a23419987e45d3b01fe76f601f6a876 /activerecord/lib/active_record/relation.rb
parent92c982d973c3e3125982309ff8bb6c22608696c5 (diff)
downloadrails-b95cc72429f83304b8e882c3637dfb3135a571ed.tar.gz
rails-b95cc72429f83304b8e882c3637dfb3135a571ed.tar.bz2
rails-b95cc72429f83304b8e882c3637dfb3135a571ed.zip
Raise ArgumentError when trying to merge relations of different classes
Diffstat (limited to 'activerecord/lib/active_record/relation.rb')
-rw-r--r--activerecord/lib/active_record/relation.rb2
1 files changed, 2 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/relation.rb b/activerecord/lib/active_record/relation.rb
index ff10df96f2..ef480cfb29 100644
--- a/activerecord/lib/active_record/relation.rb
+++ b/activerecord/lib/active_record/relation.rb
@@ -13,6 +13,8 @@ module ActiveRecord
end
def merge(r)
+ raise ArgumentError, "Cannot merge a #{r.klass.name} relation with #{@klass.name} relation" if r.klass != @klass
+
joins(r.relation.joins(r.relation)).
group(r.send(:group_clauses).join(', ')).
order(r.send(:order_clauses).join(', ')).