通常、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) p item #=> "CCC" に変更されている! というのがすごく嫌いというわけ。 #んなもん当たり前じゃないか! と思った人とはたぶん仲良くはなれない。 これが嫌いだから、 print ERB.new(s).result(:list=>