学习 Ruby 个 ERB 模板
Learning Ruby ERB Templates
我正在尝试使用以下指南学习 Ruby ERB 模板:
Tutorial Link
我在 "very simple example" 部分,代码如下:
require 'erb'
weekday = Time.now.strftime('%A')
simple_template = "Today is <%= weekday %>."
renderer = ERB.new(simple_template)
puts output = renderer.result()
我想 运行 此代码生成一个 html 文件,所以我创建了一个名为
的文件
testing.html.erb
和 运行 使用以下命令的代码:
erb testing.html.erb > new-file.html
当我通过终端执行此操作时,弹出了几个错误,生成的 html 文件为空白。以下是我收到的错误:
我希望有人能告诉我我做错了什么。我忘记了什么吗?还是我没有正确 运行 执行 erb 命令?任何帮助将不胜感激。谢谢!
如果您将代码传递给 ruby,代码将 运行。那就是用这个启动它:
ruby testing.html.erb > new-file.html
erb
命令需要传递一个 erb 模板文件而不是一段 ruby 代码。它将所有 ruby 代码视为纯文本,只有插入代码 <%= weekday %>
需要被解释为 ruby 代码。所以它试图插入 weekday
- 但由于尚未定义,它失败了。
试试这个,我想你可能会看到发生了什么:
将文件内容'testing.html.erb'更改为:
require 'erb'
weekday = Time.now.strftime('%A')
simple_template = "Today is <%= Time.now %>."
renderer = ERB.new(simple_template)
puts output = renderer.result()
然后看erb testing.html.erb
的输出:
require 'erb'
weekday = Time.now.strftime('%A') simple_template = "Today is
2016-10-24 08:40:41 +0100."
renderer = ERB.new(simple_template)
请注意,整个文件 'testing.html.erb' 都是模板。
现在看看ruby testing.html.erb
的输出
Today is 2016-10-24 08:42:16 +0100.
这里的模板就是变量的内容simple_template
如果您将绑定发送到结果方法,您的代码将起作用。
puts output = renderer.result(binding)
关于绑定的更多信息:Ruby’s Binding Class (binding objects)
我正在尝试使用以下指南学习 Ruby ERB 模板: Tutorial Link
我在 "very simple example" 部分,代码如下:
require 'erb'
weekday = Time.now.strftime('%A')
simple_template = "Today is <%= weekday %>."
renderer = ERB.new(simple_template)
puts output = renderer.result()
我想 运行 此代码生成一个 html 文件,所以我创建了一个名为
的文件testing.html.erb
和 运行 使用以下命令的代码:
erb testing.html.erb > new-file.html
当我通过终端执行此操作时,弹出了几个错误,生成的 html 文件为空白。以下是我收到的错误:
我希望有人能告诉我我做错了什么。我忘记了什么吗?还是我没有正确 运行 执行 erb 命令?任何帮助将不胜感激。谢谢!
如果您将代码传递给 ruby,代码将 运行。那就是用这个启动它:
ruby testing.html.erb > new-file.html
erb
命令需要传递一个 erb 模板文件而不是一段 ruby 代码。它将所有 ruby 代码视为纯文本,只有插入代码 <%= weekday %>
需要被解释为 ruby 代码。所以它试图插入 weekday
- 但由于尚未定义,它失败了。
试试这个,我想你可能会看到发生了什么:
将文件内容'testing.html.erb'更改为:
require 'erb'
weekday = Time.now.strftime('%A')
simple_template = "Today is <%= Time.now %>."
renderer = ERB.new(simple_template)
puts output = renderer.result()
然后看erb testing.html.erb
的输出:
require 'erb'
weekday = Time.now.strftime('%A') simple_template = "Today is 2016-10-24 08:40:41 +0100."
renderer = ERB.new(simple_template)
请注意,整个文件 'testing.html.erb' 都是模板。
现在看看ruby testing.html.erb
Today is 2016-10-24 08:42:16 +0100.
这里的模板就是变量的内容simple_template
如果您将绑定发送到结果方法,您的代码将起作用。
puts output = renderer.result(binding)
关于绑定的更多信息:Ruby’s Binding Class (binding objects)