def build_constraint(klass, table, key, foreign_table, foreign_key)
      if reflection.polymorphic?
        super(klass, table, key, foreign_table, foreign_key)
          .and(foreign_table[reflection.foreign_type].eq(reflection.klass.name))
      else