Ben initialize
içinde bir attr_accessor
ardından bir instance_eval
yapmaya çalışıyorum ve bu almaya devam: `` başlatmak ': tanımsız yöntemi' attr_accessor'`. Neden bu çalışmıyor?Neden attr_accessor içeride başlatmak kullanabilir ki?
kod şöyle tür görünür: attr_accessor Sınıfım örnek yöntemi olarak tanımlanmadığı, çünkü örneğinde attr_accessor diyemezsin
class MyClass
def initialize(*args)
instance_eval "attr_accessor :#{sym}"
end
end
class_eval
varname
değerini varsayarak: Sadece yazmaya gerek Eğer kendi kendine – johannesNo yazdığı yer, öyle değil. sınıf << kendini; ... ”sonu bir kapanış değil. İçinde 'varname 'erişemezsiniz, ancak' class_eval 'bloğuna erişebilirsiniz. – sepp2k
[semiomant cevabı] (http://stackoverflow.com/a/14978624/403664) iyidir. buna bir bak. –