2010-01-29 7 views
1

Je sais qu'il y a eu une tonne d'entrées sur ce sujet mais je n'ai pas encore vu l'image complète de la façon de stocker les données. J'essaie de faire un système qui lit puis analyse puis stocke des informations sur les événements de l'API Yahoo Upcoming.Parse puis stocker les données XML de l'API dans Ruby on Rails

L'URL retourne un xml assez simple qui ressemble à ceci

<event> 
<id>489875230</id> 
<description>Open Bar</description> 
<status>Live</status> 
<latitude>29.74</latitude> 
<longitude>-95.37</longitude> 
</event> 

J'ai lu dans REXML et d'autres, mais comment puis-je prendre la valeur des éléments et de les stocker dans mon modèle? L'objectif est d'imprimer les valeurs de tous les éléments souhaités dans le XML vers des boîtes de texte pour permettre l'édition des données, puis de laisser l'utilisateur enregistrer dans la base de données ... J'ai du mal à trouver comment faire quelque chose avec les données une fois qu'il est analysé.

Toute aide, lien ou suggestion pourrait vraiment m'aider beaucoup.

Répondre

4

mettre en place un modèle avec les mêmes attributs, analyser le xml en un hachage, puis créer le modèle avec le hachage?

class CreateEvent < ActiveRecord::Migration 
    def self.up 
    create_table :events do |t| 
    t.id :id 
    t.string :decription 
    t.string :status 
    t.decimal :latitude 
    t.decimal :longitude  #(you'll want to set the precision and scale properly here) 
    end 
end 


data = Hash.from_xml <<EOX 
<event> 
<id>489875230</id> 
<description>Open Bar</description> 
<status>Live</status> 
<latitude>29.74</latitude> 
<longitude>-95.37</longitude> 
</event> 
EOX 

Event.create!(hash[:event])