在数组上使用注入时获取未定义的方法'call'

时间:2016-12-30 17:59:37

标签: ruby

我在一个字符串中有一个xpath,看看每个位中从nokogiri返回的是什么,我试图遍历字符串,从而遍历路径。

我正在使用的xpath字符串是:

//div[contains(@id,"results")]//div[contains(@class,"page-nav")]//ul[contains(@class,"pagination-tabs")]

为此,我将//上的字符串拆分,然后使用inject将文档放入循环块,执行xpath,执行puts然后返回该段我可以做下一点,像这样:

get_mpc_tag[:path].split.('//').inject(doc) do |el,section|
  a = el.xpath("//%s" % section)
  puts a
  a
end

但是我得到了一个奇怪的错误(好吧,对我来说很奇怪):

undefined method `call' for #<Array:0x007f9f8c032f68> (NoMethodError)

出现此错误的任何想法?

1 个答案:

答案 0 :(得分:5)

 foo.(bar)

的语法糖
foo.call(bar)

您正尝试在call的结果上致电split,这是Array并且没有call方法。