простой ответ
sp_changeobjectowner [ @objname = ] 'object' , [ @newowner = ] 'owner'
Вы не должны останавливать все соединения с базой данных, это может быть сделано на лету.
Здесь нет ничего встроенного, чтобы сделать трюк, но написать код, чтобы сделать это, используя гем JSON, не так уж сложно. В Rails есть метод symbolize_keys
, если вы его используете, но он не символизирует ключи рекурсивно, как вам нужно.
require 'json'
def json_to_sym_hash(json)
json.gsub!('\'', '"')
parsed = JSON.parse(json)
symbolize_keys(parsed)
end
def symbolize_keys(hash)
hash.inject({}){|new_hash, key_value|
key, value = key_value
value = symbolize_keys(value) if value.is_a?(Hash)
new_hash[key.to_sym] = value
new_hash
}
end
Как сказал Leventix, гем JSON обрабатывает только строки с двойными кавычками (которые технически правильно - JSON должен быть оформлен в двойные кавычки). Этот фрагмент кода очистит это перед попыткой его синтаксического анализа.
Конечно, есть гем json , но он обрабатывает только двойные кавычки.