При попытке очистить свои навыки Ruby я продолжаю работать в этом случае, и я не могу понять объяснения, просто прочитав документы API. Было бы весьма полезно получить объяснение. Вот пример кода:Как переменные связаны с телом define_method?
for name in [ :new, :create, :destroy ]
define_method("test_#{name}") do
puts name
end
end
То, что я хочу/ожидать, чтобы это произошло, что переменная name
будет привязан к блоку уделено define_method
и что, когда #test_new
называется он выведет «новый». Вместо этого каждый определенный метод выводит «destroy» - последнее значение, присвоенное переменной имени. Что я не понимаю о define_method
и его блоках? Благодаря!
Теперь я думаю, что я должен ожидать, что define_method будет работать так же, как ключевое слово def, и в этом случае блок, заданный define_method, может работать только с переменными, локальными для него или переданными в качестве аргументов. – Chris