2016-10-07 1 views
0

J'appelle des données à partir d'une API en utilisant HTTParty et je suis capable de sortir les données dans un terminal à l'aide de rails runner. (Je ne vais pas avoir ces données disponibles dans une vue, j'ai juste besoin de les enregistrer dans la base de données pour une utilisation ultérieure). Pour l'instant mon fichier est lib/referrers.rbComment puis-je enregistrer la sortie d'un appel d'API dans une table de ma base de données?

La sortie est renvoyée comme ceci:

{"id"=>718371286, 
    "created_at"=>"2016-10-07T13:29:19Z", 
    "updated_at"=>"2016-10-07T13:29:20Z", 
    "tracking_code"=>"fd8382a2-2ec3-4377-9463-25f8d2e13fd1", 
    "lead"=>nil, 
    "url"=> 
    {"id"=>90935841, 
    "url"=>"http://m.facebook.com"}, 
    "referrer"=>{"id"=>4786600, "url"=>"http://m.facebook.com"}, 
    "affiliate"=>nil, 
    "campaign"=>nil, 
    "search_term"=>nil} 

Je voudrais séparer les données et les enregistrer sous forme de texte, les colonnes de ma table serait:

uri_id, tracking_code, lead, url, referrer, affiliate, campaign, search_term, created_at, updated_at

Ce que je voudrais savoir comment puis-je aller sur l'enregistrement des données dans ma base de données?

Est-ce que cela peut également être réalisé sans devoir démarrer le serveur rails à chaque fois?

+0

Sauf si quelque chose me manque, cela devrait être aussi simple que possible. Vous venez d'analyser le json, puis créer un enregistrement avec ces données. – baron816

+0

Je suppose que ce serait simple une fois que je l'ai fait avec succès quelques fois. Pour l'instant, c'est assez décourageant. :) – NeyLive

Répondre

1

En tant que partie d'une application de rails, je suggérerais faire un modèle tout comme ce que vous avez décrit:

rails g model Referrer uri_id:integer tracking_code lead url referrer affiliate campaign search_term 

Et puis quand vous obtenez une réponse, instancier un nouveau Référent et passer dans les différentes parties de réponse au nouveau modèle. En ce qui concerne votre dernière question, vous pouvez le faire dans une tâche de rake ou à partir de la console rails une fois que vous avez fait le modèle, mais si vous ne l'utilisez pas comme une application rails, les rails sont un peu lourd pour votre but, je pense.

+0

Merci pour votre réponse. Je vais probablement devoir le mettre dans une tâche rake alors, ce qui pourrait être un peu difficile car j'ai eu des problèmes pour exécuter des tâches rake avec une classe pour une raison quelconque. La base de données que je sauvegarde est dans une application rails, c'est pourquoi j'utilise des rails pour le faire. Désolé si j'ai l'air bête à propos de tout ça, c'est la première fois que je travaille avec une API. – NeyLive

+0

Je vais essayer votre suggestion plus tard. En ce moment j'essaie de comprendre pourquoi l'API ne retourne soudainement rien. – NeyLive