erb erbテンプレートで使用される変数がグローバル変数でない限り、undefined local variable or method for main:Object (NameError)
を返します。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
のようなものを行うことができますので
エルブ
result
方法は、あなたがそれを与えるコードを評価するためにどのと結合され、オプションの第二の方法を取ります実際にERBテンプレートをどこで実行しますか?テンプレート上で '#result'が呼び出されるまでは何も起こらず、渡されるべき呼び出し元のバインディング(すべての変数参照を含みます)が必要です。 – d11wtqあなたのコードが何をしているのか分かりません。説明は私の答えを参照してください;) – d11wtq