Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在Nokogiri中通过文本搜索变量_Ruby On Rails_Ruby_Nokogiri - Fatal编程技术网

Ruby on rails 如何在Nokogiri中通过文本搜索变量

Ruby on rails 如何在Nokogiri中通过文本搜索变量,ruby-on-rails,ruby,nokogiri,Ruby On Rails,Ruby,Nokogiri,我的控制器中的以下代码不起作用: @date = (Date.today - 1.day).strftime('%d.%m.%Y').to_s doc = Nokogiri::HTML(open("http://www.moex.com/ru/derivatives/contractresults.aspx?code=Si-6.17")) row = doc.xpath('//td[contains(text(), "#{@date}")]') 但是,如果我将“#{@date}”更改为像“20

我的控制器中的以下代码不起作用:

@date = (Date.today - 1.day).strftime('%d.%m.%Y').to_s
doc = Nokogiri::HTML(open("http://www.moex.com/ru/derivatives/contractresults.aspx?code=Si-6.17"))
row = doc.xpath('//td[contains(text(), "#{@date}")]')
但是,如果我将
“#{@date}”
更改为像“2017年5月25日”这样的真实日期,一切正常:

row = doc.xpath('//td[contains(text(), "25.05.2017")]')

如何在变量中搜索文本?

仔细查看上一个表达式:

row = doc.xpath('//td[contains(text(), "#{@date}")]')
                ^                                  ^
在Ruby中,双引号字符串
“…”
允许插值

row = doc.xpath("//td[contains(text(), '#{@date}')]")

首先,当你可以简单地使用
@date
时,为什么要使用
“{@date}”
呢?我已经尝试了“{@date}”和@date两种方法,但都没有成功。请考虑在单独的过程中在控制器外部进行准备,并存储信息以备将来使用。如果网站关闭或运行缓慢,将影响应用程序的速度,使其看起来像是你的代码。此外,如果该操作被反复调用,您最终会给另一个站点添加药物,可能会被禁止。“只有双引号字符串”…“允许插值”注意您的表达方式:如果
foo='bar'
,则前三个是真的<“条码”码>>码码>>“{foo}{{foo}}{{foo}}码>>码>>码>>码>>码>>码>>码>>码码>码>>码>>码码>>“{foo}{foo}}”码>>“码码>>码码>>码码码>>“条码”码““““>“““[码”码码码码码>>“{{你们你们你们你们你们们(若若若若若你们们(你们你们们(你们你们你们你们们(你们们要是要是要是要是要是要是要是要是要是要是要是要是要是你们们(你们你们你们你们们(你们们要是要是要是要是要是要是要是要是要是要是要是要是要是要是要是要是要是要是要是要是你们你们你们们(你们你们你们你们你们你们你们你们你们你们们(你们们要是要是要是要是要是要是要是要是要是要是要是要是要是要是要是要是foo#=>“bar”这是插值的一个例子吗?