Considérez le code suivant:Envoyer permet d'accéder à des variables privées
def create_class(class_name, superclass, &block)
klass = Class.new superclass, &block
Object.const_set class_name, klass
end
Après que je fais:
create_class('User', ActiveRecord::Base)
ce qui suit est ok:
Object.send(:remove_const, :User)
mais ceci:
Object.remove_const :User
de ce:
NoMethodError: private method `remove_const' called for Object:Class
? Cela n'a pas de sens pour moi ... peut 'envoyer' remplacer les contrôles d'accès de Ruby? S'il vous plaît aider!
Il n'y a pas vraiment de variable privée dans Ruby. Ils sont tous privés. Seules les méthodes ont un contrôle d'accès. –