Преобразование хеша в строку json - rails

Имею пост модель и контроллер. Однако, когда я загружаю изображение, оно сохраняет image_data как хэш

{
        "id": 54,
        "image_data": "{\"id\":\"461dd0ca2c6ad31995a30039192d43cb.png\",\"storage\":\"store\",\"metadata\":{\"filename\":\"Artboard .png\",\"size\":13081,\"mime_type\":\"image/png\"}}",
        "user_id": 55,
        "created_at": "2017-10-31T06:42:35.809Z",
        "updated_at": "2017-10-31T06:42:35.908Z"
    } 

но мне нужно, чтобы он отображался как строка json. to_json не работает, однако создать контроллер работает и отлично показывает, когда я делаю

def as_json(options={})
{
:image => self.image
}
end

Но показывать, индексировать и т. Д. Выдают ошибку <JSON::ParserError: 743: unexpected token at 'boo'

Как я могу заставить его работать, чтобы все отображалось как строка json?

{
    "image": {
        "id": "64b6f1b9654dc0ea91965e2003f7d270.png",
        "storage": "store",
        "metadata": {
            "filename": "Artboard .png",
            "size": 13081,
            "mime_type": "image/png"
        }
    }
}

person user3026318    schedule 31.10.2017    source источник
comment
Он уже хранится в виде строки. Для хранения JSON необходимо использовать apidock.com/rails/ActiveRecord/Base/serialize/class или измените столбец в БД на тип JSON (если можете)   -  person kolas    schedule 31.10.2017


Ответы (1)


Я думаю, ваш вопрос в том, как вы можете глубоко преобразовать это в объект JSON. Я не думаю, что есть встроенная функция, которая могла бы это сделать. Взгляните на это answer, поэтому я думаю, вам следует создать функцию, которая глубоко конвертирует ее в JSON. Надеюсь, это поможет.

person Amr Adel    schedule 31.10.2017