Ruby on Rails控制器中的子串检查

时间:2013-11-17 20:48:38

标签: ruby-on-rails ruby controller web-scraping substring

在我的Ruby on Rails应用程序中,我从HTML文档创建了一个String数组@dates。我想提取包含“Week of”的@dates的第一个元素,将其保存在单独的变量@cal中,然后在视图中打印它。以下是执行此操作的控制器方法:

def locations
  page = Nokogiri::HTML(open("app/views/home/file.html"))
  @dates = page.css(".boxx")
  @cal = "THIS DOESNT WORK"

  @dates.each do |d|
    if d.include? "Week of" 
      @cal = d
      break
    end
  end

我的问题是,尽管“Week of”在HTML文档中显示为文本,但当我在视图中打印@cal时,我仍然得到“这样做不行”。出于某种原因,包括?没有找到子串匹配。我不知道为什么。非常感谢你的帮助。

1 个答案:

答案 0 :(得分:1)

这是因为根据代码,“d”不是字符串,而是Nokogiri :: XML :: Element

类型的对象

您可以尝试以下修改

  page = Nokogiri::HTML(open("app/views/home/file.html"))
  @dates = page.css(".boxx")
  @cal = "THIS DOESNT WORK"

  @dates.each do |d|
    if d.to_s.include? "Week of" 
      @cal = d
      break
    end
  end