我想使用erb
ruby 的模板功能。但我无法运行提供的示例代码。
我发现安装了erb:
# file /usr/lib/ruby/1.9.1/erb.rb
/usr/lib/ruby/1.9.1/erb.rb: ASCII English text
它与红宝石一起安装:
# dpkg -S /usr/lib/ruby/1.9.1/erb.rb
libruby1.9.1: /usr/lib/ruby/1.9.1/erb.rb
我在下面提供的示例代码下运行/usr/lib/ruby/1.9.1/erb.rb
#!/usr/bin/ruby
require 'erb'
x = 42
template = ERB.new <<-EOF
The value of x is: <%= x %>
EOF
puts template.result(binding)
运行代码时出现以下错误:
/workspace/ruby/erb.rb:4:in `<top (required)>': uninitialized constant ERB (NameError)
from /workspace/ruby/erb.rb:2:in `require'
from /workspace/ruby/erb.rb:2:in `<main>'
问题:上面的代码中缺少什么?
这是我的平台:
# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 10.04.4 LTS
Release: 10.04
Codename: lucid
# uname -m
i686
和我的红宝石版本:
# ruby -v
ruby 1.9.1p378 (2010-01-10 revision 26273) [i486-linux]
回答:
@matt 的评论是对这个问题的回答。我将我的脚本命名为erb.rb
,这就是问题所在。我将它重命名为testing_erb.rb
并且它有效。请查看马特的评论以获取更多详细信息。