Как я могу перебрать объект хеш-данных и хранить в дБ (sqlite) в рельсах?

Я работаю с данными JSON, выборка данных JSON из URL с использованием гема httparty работает отлично. Теперь я хочу перебрать объект хеш-данных и сохранить в базе данных sqlite.

json data
 {
        "restaurant_name": "Restaurant 3",
        "address": "xyz address",
        "country": "United States",
        "currency": "USD",
        "client_key": "12345",
        "client_name": "Client 3"}

эти данные JSON я хочу хранить в БД, как это,

+----+--------+---------+---------- +
|     meta_key     | meta_value     |
+--------------------------+--------+       
| restaurant_name  | abc restatant  |
|-----------------------------------|
| country          |  USA           |
+-----------------------------------+



def index

  require 'httparty'

  @setting = HTTParty.get(
    'http://codekyt.in/froodle-wp/wp-json/data/v2/projects?client_key=12345',
    :headers =>{'Content-Type' => 'application/json'}
  )
  @sett = @setting.parsed_response

  @sett.each_key do |key,value|
    m = Setting.new
    m.meta_data = key
    m.meta_value = value
    m.save
  end
end

это хранить, но в формате массива не хэш,

В дБ,

t.string :meta_data
t.string :meta_value
0
Вы можете использовать t.json: meta_data </​​code> для хранения данных json,
добавлено автор ray, источник
Возможно, это действительно для рельсов-5: P
добавлено автор ray, источник
спасибо тебе большое @ray
добавлено автор raj D, источник

1 ответы

В миграции добавьте

def change
  add_column :settings, :meta_data, :json
end

Или в случае создания новой таблицы,

t.json :meta_data # storing meta_data & meta_value in your code

В модели setting.rb

serialize: :meta_data, JSON

И в вашем коде измените как,

  @setting = HTTParty.get(
    'http://codekyt.in/froodle-wp/wp-json/data/v2/projects?client_key=12345',
    :headers =>{'Content-Type' => 'application/json'}
  )
  Setting.create(meta_data: @setting.parsed_response)

Небольшие изменения относительно связанного объекта, который будет сохранен выше, могут быть сделаны согласно вашей ситуации

0
добавлено
JavaScript Jobs — чат
JavaScript Jobs — чат
8 336 участник(ов)

JavaScript Jobs — чат для поиска работы и людей Правила оформления: https://teletype.in/@telegram-ru/r1WQe5F1m См. также: @mobile_jobs, @devops_jobs, @nodejs_jobs, @react_js, @angular_ru, @js_ru

JavaScript.ru
JavaScript.ru
7 932 участник(ов)

Сообщество сайта JavaScript.ru в Slack.

pro.js
pro.js
4 675 участник(ов)

Про JavaScript и NodeJS Invite: https://t.me/joinchat/Be4rsT5Rsgq30DHutjxXgA Правила: http://telegra.ph/ru-chat-rules-06-19 Вакансии только с ЗП, не чаще раза в неделю.

JavaScript — русскоговорящее сообщество
JavaScript — русскоговорящее сообщество
3 269 участник(ов)

Рекомендуем сразу отключить уведомления Правила: https://rudevs.network/ByaMH6un7 См. также: @js_noobs_ru, @nodejs_ru, @typescript_ru, @react_js, @electron_ru Вакансии и поиск работы: @javascript_jobs

JavaScript Noobs — сообщество новичков
JavaScript Noobs — сообщество новичков
2 484 участник(ов)

Чат для новичков

pro.ruby
pro.ruby
1 181 участник(ов)

Язык программирования Ruby Additional docs: https://rubyreferences.github.io/rubyref/ Invite: https://telegram.me/joinchat/Be4rsT2NuB3CyJaF26j1kA Кто хочет компилировать: @crystal_ru (его синтаксис основан на Ruby) Участник @proDOT

Ruby, Rails, Hanami | dry-rb
Ruby, Rails, Hanami | dry-rb
1 180 участник(ов)

https://telegram.me/rubyjob - Ruby Job По вопросам - @eugene_shved

Ruby School .us
Ruby School .us
1 045 участник(ов)

Чат-болталка для учеников руби-школы и не только. Правила: https://telegra.ph/Pravila-chata-Rubi-shkoly-03-13

javascript_ru
javascript_ru
915 участник(ов)

Сообщество любителей самого популярного языка программирования в мире. Чат основан в 2009 году. Логи: https://goo.gl/9EOeM7 Поддержка бота: @chat_linker (ссылка на репу внутри) Вам будут интересны @frontend_ru и @css_ru

jsChat
jsChat
603 участник(ов)

Чат посвященный программированию на языке javaScript Перед отправкой ссылки на Ваш контент посоветуйтесь с админом Все ссылки удаляются ботом автоматически

Random Ruby Chat
Random Ruby Chat
589 участник(ов)

Правила публикации вакансий: https://t.me/codenamecrud/60865

JavaScript for Zombies Chat
JavaScript for Zombies Chat
492 участник(ов)

Чат про JavaScript для настоящих zombie! Вход строго по приглашениям! Ссылка для строгих приглашений: https://t.me/joinchat/AAMBHz3Uyr0tuZ7VaB029g

All That JS
All That JS
417 участник(ов)

JS на русском

Rubyata
Rubyata
333 участник(ов)

Коммюнити Ruby и Ruby On Rails Флуд не приветствуются. Вакансии можно публиковать только и ТОЛЬКО по пятницам с хештегом #вакансия.

Ruby Talks
Ruby Talks
236 участник(ов)

Национальная Флеймотека

RubyRush
RubyRush
189 участник(ов)

rubyrush.ru программирование для самых новичков

Rails Chat
Rails Chat
87 участник(ов)

You are welcome to discuss Ruby On Rails development process and other stuff