【发布时间】:2009-07-24 12:56:40
【问题描述】:
考虑以下代码:
def create_class(class_name, superclass, &block)
klass = Class.new superclass, &block
Object.const_set class_name, klass
end
之后:
create_class('User', ActiveRecord::Base)
以下是可以的:
Object.send(:remove_const, :User)
但是这个:
Object.remove_const :User
结果:
NoMethodError: private method `remove_const' called for Object:Class
?对我来说没有意义......可以“发送”覆盖 Ruby 的访问检查吗?请帮忙!
【问题讨论】:
-
Ruby 中并没有真正意义上的私有变量。他们都是私人的。只有方法有访问控制。
标签: ruby metaprogramming access-specifier