ERB で Binding を使うとローカル変数が勝手に変更されるという問題 - kwatchの日記

screenshot

通常、ERB#result() には Binding を渡すけど、個人的にこれが大っ嫌い。なんでかというと、eRubyスクリプトを実行することで、メインプログラム内のローカル変数が勝手に変更されてしまうから。 つまりだな、 s = <<END <% for item in list %> <p><%= item %></p> <% end %> END list = ['AAA', 'BBB', 'CCC'] require 'erb' item = 'foo' # ローカル変数を設定 print ERB.new(s).result(binding) ...

http://d.hatena.ne.jp/kwatch/20080609/1213029123

[]「もっと大事なことは、Bindingを使わないので、eRubyスクリプト内でのローカル変数の操作がメインプログラム」

http://b.hatena.ne.jp/entry/http://d.hatena.ne.jp/kwatch/20080609/1213029123