Мой json хранится в столбце json (parsed_document) на Postgresql:
{ "purchase_order": "8422" }
На моем контроллере rails я пытаюсь получить столбец parsed_document:
Orders.where("parsed_document ->> 'purchase_order' = '8422'")
Нет результатов .Чего мне не хватает?
Спасибо.
Вывод Rails:
[19] pry(main)> SapWrite.where("parsed_document ->> 'purchase_order' = '8422'")
=> SapWrite Load (2.2ms) SELECT "sap_writes".* FROM "sap_writes" WHERE
(parsed_document ->> 'purchase_order' = '8422')
[]
Я обнаружил проблему.Это был я, к сожалению.Я извлекал JSON с сервера MSQL и анализировал его два раза.
records.each do |row|
parsed_document = row["parsed_document"]
json_parsed_document = JSON.parse(parsed_document)
@SapWrite = SapWrite.new(parsed_document:json_parsed_document.to_json)
@SapWrite.save
end
В базе данных JSON, по-видимому, был прав, но это не так.
Итак, я удалил to_json из переменной json_parsed_document, и теперь он правильно записывает json, и теперь я могу запросить поле json.
Вставка JSON перед:
{\\\"purchase_order\\\":\\\"8314\\\"}
JSON после:
{\"purchase_order\":\"8314\"}