Ruby on rails 在ruby中将一行输出到前一行

Ruby on rails 在ruby中将一行输出到前一行,ruby-on-rails,ruby,Ruby On Rails,Ruby,我在ruby中有以下案例: f.puts "The result is: " my_array.flatten.each {|n| f.puts n} //my_array is constructed before and it outputs the correct line 如您所见,我正在将字符串“结果是:”写入一个文件中。现在我想在同一行上输出我的_数组的结果,而不是在下一行 我试了一下: f.puts "The result is: #{my_array.flatten.e

我在ruby中有以下案例:

f.puts "The result is: "
my_array.flatten.each {|n| f.puts n}    //my_array is constructed before and  it outputs the correct line
如您所见,我正在将字符串“结果是:”写入一个文件中。现在我想在同一行上输出我的_数组的结果,而不是在下一行

我试了一下:

f.puts "The result is: #{my_array.flatten.each {|n| f.puts n}}"

但这是不对的。任何想法=

您尝试的行:
f.puts“结果是:{my_array.flatte.each{n{124; f.puts n}}”
几乎是正确的

f.puts "The result is: #{my_array.flatten.join(" ")}"
问题是,当您迭代
每个
循环中的值时,您只是在字符串完全构造之前将它们打印到文件中。您应该做的是将值转换成字符串,然后将该字符串放入

因此,您可以使用
flatten.join(',')
而不是
flatten.each{n | f.put n}

或者,您可以使用
f.print
而不是
put
-
print
不附加换行符,因此此代码也可以工作:

f.print "The result is: "
my_array.flatten.each {|n| f.print n, " "}
f.puts # or f.print "\n"

问题是
{}
正在获取命令的返回值,即数组本身。您可以使用
.join
在一个命令中完成此操作:

f.puts "The result is:\n#{my_array.flatten.join("\n")}"

它将提供所需的输出。

您可能希望使用
print
而不是
put
put
在输出中添加换行符,
print
不添加换行符。