我是ruby的新手,犯了很多错误,所以我希望那些有红宝石经验的人可以分享一些知识。
我无法弄清楚如何使ruby将文本保存为方法all
写入的txt文件。
class generator
def all
puts "i want to save this text into a txt file"
end
end
new_gen = generator.new
new_gen.all
my_file = File.new("Story.txt", "a+")
my_file.puts("all")
my_file.puts("\n")
my_file.close
我尝试了所有内容,但是txt文件中包含“all”,或者它完全空白。有任何想法吗?我还尝试了my_file.puts(all)
和my_file.puts(new_gen.all)
。
答案 0 :(得分:1)
你的方法应该只返回一个字符串。 Puts显示字符串,不返回它。所以将课程改为:
class generator
def all
"i want to save this text into a txt file" # optionally add a return
end
end
new_gen = generator.new
new_gen.all
然后使用您尝试的最新版本:my_file.puts(new_gen.all)
答案 1 :(得分:1)
试试这个:
class Generator
def all
"i want to save this text into a txt file"
end
end
gen = Generator.new
f = File.new("Story.txt", "a+")
f.puts gen.all
f.close
答案 2 :(得分:1)
如果您希望Generator
进行写作,可以将IO
对象传递给它。
class Generator
def initialize(io)
@io = io
end
def all
@io.puts "i want to save this text into a txt file"
end
end
# write to STDOUT
gen = Generator.new(STDOUT)
gen.all
# write to file
File.open("Story.txt", "a+") do |file|
gen = Generator.new(file)
gen.all
end