这失败
require 'rinruby'
r = RinRuby.new(:echo => false)
spreads = []
spreads << 44
spreads << 2
r.assign "test", spreads
/var/lib/gems/2.1.0/gems/rinruby-2.0.3/lib/rinruby.rb:656:in `rescue in assign_engine': Unsupported data type on Ruby's end (RuntimeError)
from /var/lib/gems/2.1.0/gems/rinruby-2.0.3/lib/rinruby.rb:635:in `assign_engine'
from /var/lib/gems/2.1.0/gems/rinruby-2.0.3/lib/rinruby.rb:405:in `assign'
这有效
require 'rinruby'
r = RinRuby.new(:echo => false)
r.assign "test", [44, 2]
发生什么事了?如果我打印出spread.class和[44,2] .class,它们都会给出一个数组。
答案 0 :(得分:2)
感谢sawa和Matt的上述评论。它帮助我意识到问题所在。上面的例子被简化为更容易阅读,但它包含了我的数组中的真实数据没有引起问题的假设。当我做了测试你给了我sawa,我发现它有效,所以我看到问题必须是我的数据。然后我看到即使我的数据看起来与上面的示例数组相同,它也有BigDecimal格式的数字,rinruby拒绝了。当我把它们改成浮子时,它起作用了。