私の質問は、括弧や引用符を取得せずに、Ruby 1.9 で配列要素を文字列に変換する方法についてです。定期レポートを作成するために使用する配列 (DB 抽出) があります。
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
(必要な)出力を生成したもの
第 1 四半期に、Apple を 2 個販売しました。
ruby 1.9 の同じ 2 行が生成します (望ましくない)
第 1 四半期に ["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:`+': 配列を文字列に変換できません (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
これは一般的に機能します。
しかし、それを行うためのよりエレガントな「ルビー」の方法は何でしょうか?