我的问题是关于如何在 ruby 1.9 中将数组元素转换为字符串而不获取括号和引号。我有一个数组(数据库提取),我想用它来创建定期报告。
myArray = ["Apple", "Pear", "Banana", "2", "15", "12"]
在 ruby 1.8 中,我有以下行
reportStr = "In the first quarter we sold " + myArray[3].to_s + " " + myArray[0].to_s + "(s)."
puts reportStr
哪个产生了(想要的)输出
在第一季度,我们售出了 2 个苹果。
ruby 1.9 中的相同两行产生(不需要)
在第一季度,我们出售了 ["2"] ["Apple"] (s)。
在阅读文档 Ruby 1.9.3 doc#Array#slice之后 ,我想我可以生成类似的代码
reportStr = "In the first quarter we sold " + myArray[3] + " " + myArray[0] + "(s)."
puts reportStr
返回运行时错误
/home/test/example.rb:450:in `+': 无法将 Array 转换为 String (TypeError)
我目前的解决方案是使用临时字符串删除括号和引号,例如
tempStr0 = myArray[0].to_s
myLength = tempStr0.length
tempStr0 = tempStr0[2..myLength-3]
tempStr3 = myArray[3].to_s
myLength = tempStr3.length
tempStr3 = tempStr3[2..myLength-3]
reportStr = "In the first quarter we sold " + tempStr3 + " " + tempStr0 + "(s)."
puts reportStr
这通常有效。
但是,如何做到这一点会是一种更优雅的“红宝石”方式?