Ruby on rails 使用get.chomp()更改变量

Ruby on rails 使用get.chomp()更改变量,ruby-on-rails,ruby,gets,chomp,Ruby On Rails,Ruby,Gets,Chomp,我正在尝试使用以下代码写入文件: puts "-------------------- TEXT-EDITOR --------------------" def tor(old_text) old_text = gets.chomp # end $epic="" def torr(input) tore= $epic += input + ", " File.open("tor.txt", "w") do |write| write.puts tore end

我正在尝试使用以下代码写入文件:

  puts "-------------------- TEXT-EDITOR --------------------"
def tor(old_text)
  old_text = gets.chomp #
end


$epic=""

def torr(input)

  tore=  $epic += input + ", "

File.open("tor.txt", "w") do |write|
  write.puts tore
  end
end



loop do
  output = tor(output)
  torr(output)
end
我已经阅读了ruby编程的终极指南 它说如果我想在我写的文件中使用using file.open创建新行 我必须用第一行,第二行 如何使用get.chomp实现这一点?试试我的代码,你就会明白我的意思
谢谢。

如果您不使用.chomp,则每当您写新行时\n字符都会被添加,如果您将其保存到文件中,它也会有新行。chomp从输入的末尾删除这些转义字符

如果这不能回答您的问题,很抱歉我不明白。

gets方法将引入任意数量的文本,但当您点击“回车”或STDIN收到时,它将终止\n。此输入记录分隔符存储在全局变量$/中。如果更改脚本中的输入分隔符,gets方法实际上会将“Enter”键与更改全局变量的值进行交换

$/ = 'EOF' # Or any other string
lines = gets.chomp
> This is
> multilined
> textEOF
lines #=> 'This is\nmultilined\ntext'
输入所需内容,然后在末尾键入“EOF”。一旦“看到”EOF,它将终止gets方法。chomp方法实际上会从末尾去掉字符串“EOF”

然后将其写入文本文件,\n将转换为新行

File.open('newlines.txt', 'w') {|f| f.puts lines}
newlines.txt:

这是 多行 正文


你的代码应该做什么?如果您的方法具有更有意义的名称,这也会有所帮助。我的代码应该生成一个新文件,当您键入某个内容时,每次按enter键/生成一个新句子时,它都会生成一个新行。例如,当你做File.opentor.txt,w do | write | write.puts第一行,第二行结束时,它会生成一个新行,我想知道如何使用get.chomp它不会发送新行:无论我在get.chomp中键入什么,你明白我的意思吗?