# File lib/polyamorous/activerecord_3_and_4.0_ruby_1.9/join_association.rb, line 54
    def association_join_with_polymorphism
      return @join if @Join
      @join = association_join_without_polymorphism
      if reflection.macro == :belongs_to && reflection.options[:polymorphic]
        aliased_table = Arel::Table.new(
          table_name,
          as: @aliased_table_name,
          engine: arel_engine,
          columns: klass.columns
        )
        parent_table = Arel::Table.new(
          parent.table_name,
          as: parent.aliased_table_name,
          engine: arel_engine,
          columns: parent.base_klass.columns
        )
        @join << parent_table[reflection.options[:foreign_type]]
                 .eq(reflection.klass.name)
      end
      @join
    end