Ask A Question

Notifications

You’re not receiving notifications from this thread.

Save external data in rails db, data structures

Catalin B asked in General

Hello,

I need some help/advise on how to save third data in my database, also I'm interested in any tutorial or info about these topic.
I'm struggling to save data from third party api.
I get the result and I can display the result on my app. When I want to save data in my DB it saves only the id and the zone attribute.

Here is the response body

{
"from": 1,
"to": 100,
"total": 4490,
"auditData": {
"processTime": "157",
"timestamp": "2016-05-08 09:58:05.163",
"requestHost": "",
"serverId": "",
"environment": "[int]",
"release": ""
},
"destinations": [{
"code": "A1N",
"name": {
"content": "Ansan"
},
"countryCode": "KR",
"isoCode": "KR",
"zones": [{
"zoneCode": 1,
"name": "Ansan downtown"
}],
"groupZones": []
}, 
}

In my Destination model where I have the destinations_table

attr_accessor :destination_id, :code, :country_code, :name, :zones

def self.set_destinations
url ="https://api.test.hotelbeds.com/hotel-content-api/1.0/locations/destinations"
response = HTTParty.get(url,
:query => { 
"fields" => 'code,name,countryCode,zones',
"language" => "ENG",
"from" => "1",
"to" => "5", 
"useSecondaryLanguage" => "false" 
},
:headers => add_signature_for_hotels
)
result = JSON.parse(response.body)
 result["destinations"].each do |value|
   Destination.create!("destination_id" => value["id"], "code" => value["code"], "name" => value["name"],
        "country_code" => value["countryCode"], "zone" => value["zones"][0]["name"] )
 end
end

If I try in my console result[0]["code"] it gives my the result "A1N" but if I put in my method self.set_destinations it gives me an error. undefined method `[]' for nil:NilClass

At this moment only save the destination.id = 1 and zones["name"] = Ansan downtown, how can I save the data for destination_id, code, name, and country_code.
These is how looks my table after a request:

1   | null | null | null | null | Ansan downtown |  2016-05-07 20:19:34.546309 |    2016-05-07 20:19:34.546309

How can I save all the data in my DB?

Thanks,
Cata

Reply
Join the discussion
Create an account Log in

Want to stay up-to-date with Ruby on Rails?

Join 82,329+ developers who get early access to new tutorials, screencasts, articles, and more.

    We care about the protection of your data. Read our Privacy Policy.