sql >> Base de Datos >  >> RDS >> Sqlserver

Concatenación de cadenas SQL independiente de la base de datos en Rails

Tuve el mismo problema y nunca se me ocurrió nada que estuviera integrado en Rails. Así que escribí este pequeño método.

# Symbols should be used for field names, everything else will be quoted as a string
def db_concat(*args)

  adapter = configurations[RAILS_ENV]['adapter'].to_sym
  args.map!{ |arg| arg.class==Symbol ? arg.to_s : "'#{arg}'" }

  case adapter
    when :mysql
      "CONCAT(#{args.join(',')})"
    when :sqlserver
      args.join('+')
    else
      args.join('||')
  end

end

Estoy pensando que alguien realmente debería escribir algún tipo de complemento auxiliar de SQL que pueda formatear automáticamente expresiones SQL simples basadas en el uso de las funciones u operadores correctos para el adaptador actual. Quizás escriba uno yo mismo.