Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Concatenação de strings SQL independente de banco de dados no Rails


Eu tive o mesmo problema e nunca consegui nada que fosse embutido no Rails. Então eu escrevi este pequeno 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

Estou pensando que alguém deveria realmente escrever algum tipo de plugin auxiliar SQL que pudesse formatar automaticamente expressões SQL simples com base nas funções ou operadores corretos para o adaptador atual. Talvez eu mesmo escreva um.