Ruby 绑定后如何使用erb输出文件
我得到了以下示例:Ruby 绑定后如何使用erb输出文件,ruby,templates,erb,Ruby,Templates,Erb,我得到了以下示例: require 'erb' names = [] names.push( { 'first' => "Jack", 'last' => "Herrington" } ) names.push( { 'first' => "LoriLi", 'last' => "Herrington" } ) names.push( { 'first' => "Megan", 'last' => "Herrington" } ) myname = "J
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 %>
}
text.txt
你好
你好
嗨,我的名字是
}
它可以很好地打印到屏幕上
输出到另一个文件“text2.txt”而不是屏幕的最简单方法是什么
我知道这对大多数有经验的ruby大师来说都是小菜一碟,但对于我这个刚从新手那里学到一个入门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')
以w
rite模式打开文件text2.txt
,并将该文件对象传递到块中f.write
将其参数输出到文件。在某些情况下,您可能需要调用f.close
,以允许计算机上的其他进程访问该文件,但由于我们在此处使用了块表示法,因此该文件会在块结束时自动关闭
代码未测试-如果出现错误,请告诉我。祝你的编码之旅好运