Conflito to_json ActiveSupport
Tenho um json cadastrado em um campo do meu banco de dados, preciso editar o json e em seguida fazer o update no banco, até aí nada demais, o problema veio quando ao atualizar o json no banco, caracteres como ã, é e etc eram convertidos para unicode, isso acontecia quando fazia o seguinte:
class TesteController < ApplicationController
def meu_metodo
meujson = JSON.parse(‘{“teste”:”ÃO”}’)
meujson.to_json
end
end
com esse codigo a variável meujson recebia {“teste”:”\u00c3O”}
Para debugar resolvi executar a mesma operação em um programa ruby que fazia exatamente a mesma coisa, mas a variável meujson recebia {“teste”: “ÃO”}
Isolando o problema observei que existe um conflito do to_json.
O programa ruby que fiz usava o método to_json da gem json, mas o controller rails que extende o ApplicationController, usa o to_json do ActiveSupport, sobreescrevendo o método to_json da gem json que resolve o problema dos caracteres especiais.
Para contornar esse problema faça o seguinte:
salve o codigo abaixo em: config/initializers/patches.rb
module ActiveSupport
module JSON
module Encoding
class << self
def escape(string)
::JSON.generate([string])[1..-2]
end
end
end
end
end
pronto, agora você pode usar o to_json sem problemas !
É isso, caso alguém ache alguma solução mais elegante, comente ! Espero que seja útil

Elton,
Esse é um probleminha tenso de resolver hein hehe. Parabéns, debugar essas coisas é bem chatinho
Abracao,
Bruno Carvalho
Nem fala ! perdi horas resolvendo isso
abracos