class ActiveRecord::Associations::Builder::HasAndBelongsToMany
def table_name
def table_name if options[:join_table] options[:join_table].to_s else class_name = options.fetch(:class_name) { association_name.to_s.camelize.singularize } klass = lhs_model.send(:compute_type, class_name.to_s) [lhs_model.table_name, klass.table_name].sort.join("\0").gsub(/^(.*[._])(.+)\0\1(.+)/, '\1\2_\3').tr("\0", "_") end end