lib/mobility/backends/sequel/table/query_methods.rb in mobility-0.3.1 vs lib/mobility/backends/sequel/table/query_methods.rb in mobility-0.3.2

- old
+ new

@@ -17,11 +17,14 @@ end end def define_join_method(association_name, translation_class, table_name: nil, foreign_key: nil, **) define_method :"join_#{association_name}" do |**options| - return self if (@__mobility_table_joined || []).include?(table_name) - (@__mobility_table_joined ||= []) << table_name + if joins = @opts[:join] + # Return self if we've already joined this table + return self if joins.find { |clause| clause.table_expr == table_name } + end + join_type = options[:outer_join] ? :left_outer : :inner join_table(join_type, translation_class.table_name, { locale: Mobility.locale.to_s,