Ruby 关于 rails 发送功能错误?
Ruby on rails send function bug?
发生了什么事很奇怪,我正在循环更改 html 并且需要更改名为 product01 的变量,代码:
(10..34).each do |i|
li = @doc.css('li')[i-1]
li.content = @site.send("product0#{i-9}")
end
在上面的代码中,错误是:undefined method `product010' for...
然后我刚刚删除了 0:
(10..34).each do |i|
li = @doc.css('li')[i-1]
li.content = @site.send("product#{i-9}")
end
现在的错误是:未定义方法“product1”用于...
我已经试过了
@site.send("product"+"0"+"#{i-9}")
> product010
@site.send("product0".to_s+"#{i-9}")
> product010
@site.send("product"+"0#{i-9}"
> product010
所以,我只想要 product01。
为了让事情更清楚,我使用 nokogiri 打开一个 html 并通过数据库更改值,进入数据库的变量称为 product01、product02 等
我可以说@site.product01,但是有很多产品,所以我想一个接一个地循环。
它不是一组产品,每个产品都来自一个@site。
是的,它在 |i| 时有效高于 10 但不是从 0 到 9 因为我需要把 0.
@doc = Nokogiri::HTML(open("/home/file.html")
为了让它工作,我将删除所有名为 01,02..09 的变量,如果它不起作用,则将它们的名称更改为 1,2,..9。
谢谢。
我不确定您为什么要从 product01 到 product34,这看起来不对。
是否可以将其构造为 'products' 数组?这样就标准多了。
但是,您可以将数字格式化为给定的位数...
irb> '%02d' % 6
=> "06"
这似乎可以解决问题。
(取自How to make single digit number a two digit number in ruby?)
发生了什么事很奇怪,我正在循环更改 html 并且需要更改名为 product01 的变量,代码:
(10..34).each do |i|
li = @doc.css('li')[i-1]
li.content = @site.send("product0#{i-9}")
end
在上面的代码中,错误是:undefined method `product010' for...
然后我刚刚删除了 0:
(10..34).each do |i|
li = @doc.css('li')[i-1]
li.content = @site.send("product#{i-9}")
end
现在的错误是:未定义方法“product1”用于...
我已经试过了
@site.send("product"+"0"+"#{i-9}")
> product010
@site.send("product0".to_s+"#{i-9}")
> product010
@site.send("product"+"0#{i-9}"
> product010
所以,我只想要 product01。
为了让事情更清楚,我使用 nokogiri 打开一个 html 并通过数据库更改值,进入数据库的变量称为 product01、product02 等
我可以说@site.product01,但是有很多产品,所以我想一个接一个地循环。
它不是一组产品,每个产品都来自一个@site。
是的,它在 |i| 时有效高于 10 但不是从 0 到 9 因为我需要把 0.
@doc = Nokogiri::HTML(open("/home/file.html")
为了让它工作,我将删除所有名为 01,02..09 的变量,如果它不起作用,则将它们的名称更改为 1,2,..9。
谢谢。
我不确定您为什么要从 product01 到 product34,这看起来不对。
是否可以将其构造为 'products' 数组?这样就标准多了。
但是,您可以将数字格式化为给定的位数...
irb> '%02d' % 6
=> "06"
这似乎可以解决问题。
(取自How to make single digit number a two digit number in ruby?)