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 を使用したいと思います。