J'ai eu le même problème et je n'ai jamais proposé quoi que ce soit qui ait été intégré à Rails. J'ai donc écrit cette petite méthode.
# 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
Je pense que quelqu'un devrait vraiment écrire une sorte de plugin d'assistance SQL qui pourrait automatiquement formater des expressions SQL simples en utilisant les fonctions ou les opérateurs corrects pour l'adaptateur actuel. Je vais peut-être en écrire un moi-même.