Связывание в 1.9.2 - PullRequest
       6

Связывание в 1.9.2

1 голос
/ 21 октября 2011

Я использовал везде шаблоны ERB, используя следующую технику:

def create_from_template(file, template, vars)
  contents = File.read(template(template))
  struct = OpenStruct.new(vars)
  result = ERB.new(contents).result(struct.binding)
  File.open(file, 'w') { |f| f.write result }
end

И я использую это следующим образом:

app = App.new(...)
create_from_template('new_file', 'template', { :app => app })

Так что в моем шаблоне я мог иметь:

<%= app.name %>

И в REE 1.8.7 это заменит штраф, однако в 1.9.2 я получаю следующую ошибку:

 NameError:
   undefined local variable or method `app' for #<ERB:0x007ffe6b838468>

ВОПРОС: Как я могусделать этот код 1.9.2 совместимым?

1 Ответ

1 голос
/ 11 ноября 2011

После некоторых исследований я обнаружил, что другой вопрос в StackOverflow решает эту проблему и предлагает исправление, которое работает:

Проблема с использованием OpenStruct с ERB

...