aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/arel/select_manager.rb2
-rw-r--r--spec/arel/select_manager_spec.rb5
2 files changed, 7 insertions, 0 deletions
diff --git a/lib/arel/select_manager.rb b/lib/arel/select_manager.rb
index b574253b05..c9214b20a2 100644
--- a/lib/arel/select_manager.rb
+++ b/lib/arel/select_manager.rb
@@ -19,6 +19,8 @@ module Arel
end
def join relation, klass = Nodes::InnerJoin
+ return self unless relation
+
case relation
when String, Nodes::SqlLiteral
raise if relation.blank?
diff --git a/spec/arel/select_manager_spec.rb b/spec/arel/select_manager_spec.rb
index 0d7dc27571..775a0e6162 100644
--- a/spec/arel/select_manager_spec.rb
+++ b/spec/arel/select_manager_spec.rb
@@ -86,6 +86,11 @@ module Arel
ON "users"."id" = "users_2"."id"
}
end
+
+ it 'noops on nil' do
+ manager = Arel::SelectManager.new Table.engine
+ check manager.join(nil).should == manager
+ end
end
describe 'joins' do