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”这是插值的一个例子吗?