Camilo Escobar
Camilo Escobar

Reputation: 3

How do I send information from controller method to HTML page?

I am developing a Rails application and want to put some info that I already read from an XML file and show it in a new page.

In my view I have:

<%= link_to 'Hoteles', :method => :hotels  %>

and the controller method is:

def hotels
  url = "http://api.hotelsbase.org/search.php?longitude="+@city_visit.longitude+"&latitude="+@city_visit.latitude
  data = Nokogiri::HTML(open(url))
  $name = data.xpath("//name")
  $fulladdress = data.xpath("//fulladdress")
  $phone = data.xpath("//phone")
  $city = data.xpath("//city")
  $description = data.xpath("//description")
  $featured = data.xpath("//featured")
  $stars = data.xpath("//stars")
  $rating = data.xpath("//rating")
  $long = data.xpath("//long")
  $lat = data.xpath("//lat")
  $dist = data.xpath("//dist")
  $price = data.xpath("//price")
  $tripadvisorurl = data.xpath("//tripadvisorurl")
  $url = data.xpath("//url")
  $hotelsbaseUrl = data.xpath("//hotelsbaseUrl") 
end

Now I want to show that information in a HTML page.

Upvotes: 0

Views: 44

Answers (1)

Baldrick
Baldrick

Reputation: 24340

All the global variables (starting with a $) you've defined should be instance variables (starting with an @)

@name = data.xpath("//name")
@fulladdress = data.xpath("//fulladdress")

And then you can use them in the hotels.html.erb view, like this

<%= @name %>

You should look at Rails guides to find more information and good practices about Rails; the one called "Layouts and Rendering in Rails" would have helped you for this question.

Upvotes: 1

Related Questions