Betrachten Sie den folgenden Code ein:Senden ermöglicht den Zugriff auf private Variablen
def create_class(class_name, superclass, &block)
klass = Class.new superclass, &block
Object.const_set class_name, klass
end
Nachdem ich tun:
create_class('User', ActiveRecord::Base)
Folgendes ist ok:
Object.send(:remove_const, :User)
aber dies:
Object.remove_const :User
Ergebnisse in dieser:
NoMethodError: private method `remove_const' called for Object:Class
? Für mich ergibt das keinen Sinn ... kann 'senden' Ruby's Zugriffskontrollen überschreiben? Bitte helfen Sie!
Es gibt nicht wirklich so etwas wie eine private Variable in Ruby. Sie sind alle privat. Nur Methoden haben Zugriffssteuerung. –