test = "a"
test.class_eval do
# what is going on here???
end
最佳答案
ActiveSupport 将 class_eval
添加到 Object,因此它可以用于任何东西,而不仅仅是类。
在您的示例中,它的作用相当于:
test = "a"
class << test
# do stuff
end
Rails 2.3 的实际实现在这里:http://github.com/rails/rails/blob/2-3-stable/activesupport/lib/active_support/core_ext/object/singleton_class.rb
关于ruby-on-rails - 当你在不是类的东西上运行 class_eval 时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3499515/