Имах същия проблем и никога не измислих нещо, което да е вградено в Rails. Затова написах този малък метод.
# 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
Мисля, че някой наистина трябва да напише някакъв помощен плъгин за SQL, който може автоматично да форматира прости SQL изрази на базата на правилните функции или оператори за текущия адаптер. Може би сам ще напиша един.