Если вы хотите создать JSON (и, кстати, вы создаете объект JavaScript, а не массив), я предлагаю использовать метод to_json:
var volumes = <%= @volumes.inject({}){|h,v| h.merge(v.id=>v.data)}.to_json %>;
или
var volumes = <%= Hash[*@volumes.map{|v| [v.id, v.data]}.flatten].to_json %>;
Еще лучше было бы перенести конструкцию Ruby Hash на модель, поскольку она слишком сложна для просмотра.
class Volume
def self.to_hash(volumes)
Hash[*volumes.map{|v| [v.id, v.data]}.flatten]
end
end
и тогда в поле зрения вы можете поместить гораздо более простой код:
var volumes = <%= Volume.to_hash(@volumes).to_json %>;