html - 用 ERB 生成 HTML 文件?

标签 html ruby erb

如果我有一个如下所示的 .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/

相关文章:

javascript - 动态生成的 html/ionic 复选框内的 ng-change 未绑定(bind)

ruby - 在 Ruby 中获取当前代码行

ruby - 在 Ruby 中使用 RGL 处理有向图

javascript - 当我在 application.js.erb 中使用 <%= home_index_path %> 时未定义局部变量或方法,为什么?

ruby-on-rails - 为什么这不是在 Rails 表单中创建多选框?

JavaScript 选择 HTMLInputElement 在我没想到的时候起作用了

html - 下拉菜单在 Safari 浏览器中无法正确显示

JavaScript 有没有办法阻止 href ="#"刷新页面?尼龙莫代尔

Ruby Http Post 参数

ruby-on-rails - 在我看来,未定义的方法 `image'