如果我有一个如下所示的 .html.erb
文件:
<html>
<head>
<title>Test</title>
</head>
<body>
<%= @name %>
</body>
</html>
如何生成如下所示的 HTML 文件?
<html>
<head>
<title>Test</title>
</head>
<body>
John
</body>
</html>
如果格式为 .html.erb,我如何执行模板(传递 name 参数)并且只能获取 .html 文件?
最佳答案
#page.html.erb
<html>
<head>
<title>Test</title>
</head>
<body>
<%= @name %>
</body>
</html>
...
require 'erb'
erb_file = 'page.html.erb'
html_file = File.basename(erb_file, '.erb') #=>"page.html"
erb_str = File.read(erb_file)
@name = "John"
renderer = ERB.new(erb_str)
result = renderer.result()
File.open(html_file, 'w') do |f|
f.write(result)
end
...
$ ruby erb_prog.rb
$ cat page.html
<html>
<head>
<title>Test</title>
</head>
<body>
John
</body>
</html>
当然,为了让事情更有趣,您可以随时将 @name = "John"
行更改为:
print "Enter a name: "
@name = gets.chomp
关于html - 用 ERB 生成 HTML 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25274612/