РЕДАКТИРОВАТЬ: забыл включить информацию о моей среде ... Win7x64, RubyInstaller Ruby v1.9.1-p378
РЕДАКТИРОВАТЬ 2: только что обновлен до v1.9.1, исправление 429, и по-прежнему получаю ту же ошибку.
Редактировать 3: запуск этого же кода в Ruby v1.8.7, исправление 249, работает нормально.так что, очевидно, именно v1.9.1 это сломало.
Я новичок в использовании ERB, и примеры, которые я могу найти, ... ммм ... менее чем полезны ... поиграв с ERB дляоколо часа я получил несколько базовых примеров работы (наконец), но я понятия не имею, почему это не работает ...
require 'ostruct'
require 'erb'
data = {:bar => "bar"}
vars = OpenStruct.new(data)
template = "foo "
erb = ERB.new(template)
vars_binding = vars.send(:binding)
puts erb.result(vars_binding)
этот код выдает следующую ошибку:
irb(main):007:0> puts erb.result(vars_binding)
NameError: undefined local variable or method `bar' for main:Object
from (erb):1
from C:/Ruby/v1.9.1/lib/ruby/1.9.1/erb.rb:753:in `eval'
from C:/Ruby/v1.9.1/lib/ruby/1.9.1/erb.rb:753:in `result'
from (irb):7
from C:/Ruby/v1.9.1/bin/irb:12:in `'
почему он смотрит на привязку main:Object
?Я сказал ему использовать привязку из OpenStruct, передав vars_binding
Может ли кто-нибудь объяснить мне, почему это не работает, и помочь мне заставить его работать?