そこでerubisですよ

2008-05-28
ERB で引数の hash を展開して欲しい - #生存戦略 、それは - subtech

puts ERB.new('<%= example %>').result_hash(:example => 'foo')

ローカル変数とインスタンス変数の違いはあれど、erubisならばすでに実装されている。

Erubis::FastEruby.new("<%=@hoge %>").evaluate(:hoge => 1) # => "1"
Erubis::FastEruby.new('<%=@example %>').evaluate(:example => 'foo') # => "foo"
hoge = 1
Erubis::FastEruby.new('<%=hoge %>').result(binding) # => "1"