erb дает мне undefined local variable or method for main:Object (NameError)
, если только переменная, используемая в шаблоне erb, не является глобальной переменной.erb дает мне - неопределенная локальная переменная или метод для main: Object (NameError)
Это правильно? on ruby 1.8.7 (2010-01-10 patchlevel 249) [i486-linux]
Ниже приведен код, который работает. Если я удалю $
из имени переменной ($ db, $ db_root, $ db_root_password), я получаю ошибку.
$db = get_single_argument("database name")
$db_root = get_single_argument("database root user name")
$db_root_passwd = get_single_argument("database root user password")
mysql_commands = get_conf_file("installer_mysql.erb")
puts mysql_commands.result #gives me the error
и get_conf_file процедура
def get_conf_file(file)
return_array = Array.new
if (File.exists?(file))
return_array = ERB.new File.read(file)
end
return_array
end
У вас есть полный трассировки стека и строки кода где вы фактически выполняете шаблон ERB? Ничего не должно произойти до тех пор, пока в шаблоне не будет вызван «# result», что требует связывания вызывающего объекта (в котором содержатся все ссылки на переменные). – d11wtq
Игнорируйте это, я увидел, что делает ваш код. См. Мой ответ для объяснения;) – d11wtq