Мне нужно хранить JSON-подобные объекты в нашей базе данных postgres.Первоначально я просто использовал сериализованные поля, но они занимали слишком много места.Поэтому я написал простую пользовательскую схему сжатия и теперь использую Marshal.dump / load для доступа к данным.Но я наткнулся на загадку с типом поля байтов postgres - он настаивает на том, чтобы каждый невидимый байт кодировался как трехзначное восьмеричное число, например, «\ 377».
http://www.postgresql.org/docs/8.1/static/datatype-binary.html
Я не вижу простого способа добиться этого.s.pack ("m # {s.size}"), похоже, генерирует строки с одним '\', тогда как postgres хочет '\'.Добавление gsub (/ \ /, '\\\\') в конце, похоже, не решает проблему.
У кого-нибудь есть более элегантное (и работающее) решение?