Question

I'm a rails beginner and I'm trying to display a json object I get back from an external api. I'm using HTTParty and I'm almost positive I have that set up correctly. I have a function in my HTTParty class called

self.get_all()

How would I go about making a new page on which to display the JSON I get back from that function?

Was it helpful?

Solution

It all pretty much depends on the json that comes back. Aside from it being 'JSON`, what does it look like? If you haven't even inspected it yet, maybe that's a good place to start. You can call your method like so: (pick one)

puts your_httparty_class.get_all.inpsect # will be displayed in your logs (most likely)
raise your_httparty_class.get_all.inspect # will raise the response to the view

You may find yourself needing to do something like this to ensure it's a hash.

response = HTTParty.get('https://api.somesite.com/some_endpoint')
body = JSON.parse(response.body)

Now that you know and can see that the JSON is just a hash you can access it like so:

something = body[:something] # accessing a hash
nested_something = body[:something][:nested_something] # accessing a nested hash

You can then move something and nested_something around your app. So, you could pass it from your controller to your view as instance variables:

# @ makes it an instance variable and therefore accessible to your controller's views
@something = body[:something]
@nested_something = body[:something][:nested_something]
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top