【发布时间】:2011-08-21 18:55:56
【问题描述】:
我想创建一个 Test::Unit test_helper 方法,我可以在测试执行后调用它来擦除一堆表。这是我的总体思路:
def self.wipe_models(*models)
def teardown
models.each do |model|
model = model.to_s.camelize.constantize
model.connection.execute "delete from #{model.table_name}"
end
end
end
但是,当teardown 运行时,我得到:
未定义的局部变量或方法`models'
在我看来,“def”块似乎不遵守通常的闭包规则;我无法访问在其范围之外定义的变量。
那么,如何访问在“def”方法声明之外定义的变量?
【问题讨论】:
标签: ruby metaprogramming closures