"Herrington" } ) names-6ren">
gpt4 book ai didi

ruby - 绑定(bind)后如何使用erb输出文件

转载 作者:数据小太阳 更新时间:2023-10-29 06:43:15 24 4
gpt4 key购买 nike

我得到了以下示例:

require 'erb' 

names = []
names.push( { 'first' => "Jack", 'last' => "Herrington" } )
names.push( { 'first' => "LoriLi", 'last' => "Herrington" } )
names.push( { 'first' => "Megan", 'last' => "Herrington" } )

myname = "John Smith"

File.open( ARGV[0] ) { |fh|

erb = ERB.new( fh.read )
print erb.result( binding )

伴随着

text.txt
<% name = "Jack" %>
Hello <%= name %>


<% names.each { |name| %>
Hello <%= name[ 'first' ] %> <%= name[ 'last' ] %>
<% } %>

hi, my name is <%= myname %>

}

它可以很好地打印到屏幕上。

输出到另一个文件“text2.txt”而不是屏幕的最简单方法是什么?

我知道这对于你们大多数经验丰富的 ruby​​ 大师来说真的是小菜一碟,但对于刚从 Novice 那里拿到 Beginning Ruby 的我来说......现在很有挑战性......但我想真正使用代码人生目标...

谢谢!!!

最佳答案

请注意,ERB 并未打印此内容——您正在打印。

print erb.result( binding )

让我们改变它。我们将打开文件句柄,以w方式写入,并将ERB结果写入文件。

File.open('text2.txt', 'w') do |f|
f.write erb.result(binding)
end

File.open('text2.txt', 'w')write 模式下打开文件 text2.txt,并且将该文件对象传递到 block 中。 f.write 将其参数输出到文件。在某些情况下,您可能需要调用 f.close 以允许您计算机上的其他进程访问该文件,但由于我们在这里使用 block 表示法,因此该文件会在结束时自动关闭 block 。

代码未经测试 - 如果您遇到错误,请告诉我。祝您编码之旅好运!

关于ruby - 绑定(bind)后如何使用erb输出文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2969475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com