1
考慮下面的代碼:發送允許訪問私有變量
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中沒有真正的私有變量。他們都是私人的。只有方法有訪問控制。 – 2012-03-27 23:28:24