Měl jsem stejný problém a nikdy jsem nepřišel na nic, co by bylo zabudováno do Rails. Tak jsem napsal tuto malou metodu.
# 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
Myslím, že by někdo měl skutečně napsat nějaký pomocný SQL plugin, který by dokázal automaticky formátovat jednoduché SQL výrazy založené na správných funkcích nebo operátorech pro aktuální adaptér. Možná jeden napíšu sám.