Arel 3.0.2 provides two classes to specify the join type: Arel::Nodes::InnerJoin
and Arel::Nodes::OuterJoin
and uses InnerJoin
as default.
foo = Arel::Table.new('foo')
bar = Arel::Table.new('bar')
foo.join(bar, Arel::Nodes::InnerJoin) # inner
foo.join(bar, Arel::Nodes::OuterJoin) # outer
foo.join(bar, ???) # left
How can you join two tables if you want to produce a left join?
You can use
foo.join(bar, Arel::Nodes::OuterJoin) # outer
Because LEFT JOIN = LEFT OUTER JOIN. Outer is an option. See here