Açık olmak gerekirse - code with procçağıran instance_eval (& lambda) hata var 'yanlış numara argümanları'
ama lambda Proc.new değiştirmek yerine, ben değilim - Bu kod mükemmel çalışıyor bir hata
ArgumentError: wrong number of arguments (1 for 0)
alma instance_eval bir param olarak kendini geçmek istediği için bu olacak ve bir yöntem olarak lambda davranır ve bilinmeyen params kabul etmiyoruz miyim?
class Rule
def get_rule
Proc.new { puts name }
end
end
class Person
attr_accessor :name
def init_rule
@name = "ruby"
instance_eval(&Rule.new.get_rule)
end
end
saniye değil:
class Rule
def get_rule
lambda { puts name }
end
end
class Person
attr_accessor :name
def init_rule
@name = "ruby"
instance_eval(&Rule.new.get_rule)
end
end
Teşekkür
"p.init_rule" yerine "p.get_rule" değil mi? – artificis