Sto provando a fare un instance_eval
seguito da uno attr_accessor
all'interno di initialize
, e continuo a ricevere questo: `` initialize ': metodo non definito' attr_accessor'`. Perché non funziona?Perché non posso usare attr_accessor all'interno di initialize?
Il codice sembra un po 'come questo:
class MyClass
def initialize(*args)
instance_eval "attr_accessor :#{sym}"
end
end
class_eval è lo stesso di metterlo dove hai scritto te stesso – johannes
No, non lo è. 'classe << auto; ...; end' non è una chiusura. Non si è in grado di accedere a 'varname' al suo interno, ma è possibile accedervi nel blocco' class_eval'. – sepp2k
[risposta di semiomant] (http://stackoverflow.com/a/14978624/403664) è buono. controlla. –