这是erb3.rb
require 'erb'
weekday = Time.now.strftime('%A')
simple_template = "Today is <%= weekday %>."
renderer = ERB.new(simple_template)
puts renderer.result
renderer.run当我运行这个的时候,我得到了下面的信息。
➜ ruby erb3.rb
Today is Friday.
Today is Friday.%Q1。我知道我不需要写puts renderer.run。但还有什么不同吗?
Q2。put renderer.run的输出为Today is Friday.%。最后的%是什么。当我使用puts renderer.run时,它不会输出%。
发布于 2013-11-15 04:53:55
关于Q1,编写puts renderer.result和renderer.run没有区别。更新:谢谢你@muistooshort指出run的来源
def run(b=new_toplevel)
print self.result(b)
end如您所见,它只是打印result的输出。
关于Q2,我认为%表示一个新行。如果您将脚本更改为以下内容,它就会消失。
renderer = ERB.new(simple_template)
puts renderer.result
renderer.run
puts ""
#>Today is Thursday.
#>Today is Thursday.发布于 2013-11-15 04:52:51
renderer.run打印结果,这意味着在输出之后没有新的换行符,这是由%指示的(我猜是因为您使用的是zsh)。您可以得到如下相同的结果:
➜ puts 'a'; print 'a'
a
a%https://stackoverflow.com/questions/19993695
复制相似问题