With the latest Arel it's required to use Arel::Nodes.build_quoted(' ')
instead of just String (' '). So the answer nowadays is:
SEPARATOR = Arel::Nodes.build_quoted(' ')
Arel::Nodes::NamedFunction.new(
'concat',
[arel_table[:first_name], SEPARATOR, arel_table[:last_name]]
)