У меня была та же проблема, я не мог ее исправить, но узнал, как ее избежать, со следующим:
respond_to do |format|
response = @product.to_xml
format.xml { render :xml => response }
format.json { render :json => Hash.from_xml( response ).to_json }
end
Идея состоит в том, чтобы сгенерировать XML-формат ответа, затем хэшировать его, а затем отформатировать в JSON.
Этот подход дал мне больше, чем ожидалось, поскольку теперь результаты в формате JSON содержат те же данные, что и в формате XML.