如何将信息从控制器方法发送到HTML页面?

时间:2013-09-24 19:39:45

标签: ruby-on-rails ruby nokogiri

我正在开发一个Rails应用程序,并希望将一些我已经从XML文件中读取的信息放入新页面中。

在我看来,我有:

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

,控制器方法是:

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

现在我想在HTML页面中显示该信息。

1 个答案:

答案 0 :(得分:1)

您定义的所有全局变量(以$开头)都应该是实例变量(以@开头)

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

然后您可以在hotels.html.erb视图中使用它们,就像这样

<%= @name %>

您应该查看Rails guides以查找有关Rails的更多信息和良好做法;一个名为“Rails中的布局和渲染”的内容可以帮助你解决这个问题。