как сохранить JSON для базы данных в рельсах - PullRequest
0 голосов
/ 24 июня 2018

URl хочет автоматически сохранять данные json в базу данных

сайт предоставляет этот код, но использует Java

HttpResponse response = Unirest.get("https://xproject.restdb.io/rest/data")
  .header("x-apikey", "42ba8a6dc7532aa8319a58310281665e394e4")
  .header("cache-control", "no-cache")
  .asString(); 

Этот пример json

enter image description here

модель под названием скорость содержит speed & id
нужно сохранить gps_speed_kph = speed & id_watch ==_id

Ответы [ 2 ]

0 голосов
/ 24 июня 2018

Вы можете использовать столбец JSONB. Это может помочь вам обновить единую группу данных на основе ключа в столбце.

Ref:

1) http://edgeguides.rubyonrails.org/active_record_postgresql.html#json-and-jsonb

2) https://nandovieira.com/using-postgresql-and-jsonb-with-ruby-on-rails

0 голосов
/ 24 июня 2018

Во-первых, вы должны указать тип данных db column как hash in ваш model, как описано здесь .

Затем вы должны сохранить ваш json как хэш в вашей базе данных (json to hash ):

require 'json'
value = '{"val":"test","val1":"test1","val2":"test2"}'
myhash = JSON.parse(value)
Model.create(hash_column_name: myhash)

и для конвертации вы можете сделать это (hash to json):

@myhash = Model.find(1).hash_column_name
json_data = @myhash.to_json
...