我使用template.erb
作为我的模板示例,其中包含:<%= @text %>
.
我希望能够渲染范围为block
.
我已经这样做了,它有效:
proc = Proc.new do
@text = "Hello, World"
Tilt.new('template.erb').render self
end
proc.call # => "Hello, World"
但我想在块之外渲染模板,如下所示:
proc = Proc.new do
@text = "Hello, World"
end
tilt = Tilt.new('template.erb')
# I tried these alternatives:
tilt.render proc # => ""
tilt.render proc.binding # => ""
tilt.render &proc # => ""
但是,当我像这样使用标准 ERB 库时,我成功了:
proc = Proc.new do
@text = "Hello, World"
@num = 100
end
ERB.new('<%= @text %> | <%= @num %>').result proc.binding # => "Hello, World | 100"
不过,我仍然想使用 Tilt,因为我想支持其他模板引擎。