0
class Appointment
def self.listen_to(*methods)
methods.each do |method_sym|
mth = method(method_sym) # <- doesn't find method `something`
define_method(method_sym) do
print "<listen>#{mth.call}</listen>"
end
end
end
def something
print "doing something"
end
listen_to :something
end
Undefined method 'something' for class 'Class'
。問題似乎是method(:somesymbol)
在類的作用域中查找,而不是在該方法的實例作用域中查找。從類範圍內訪問實例範圍
如何從def self.listen_to
-class方法中訪問something
-方法?
謝謝!這解決了我原來的問題(製作包裝方法),但不完全是這個問題中使用的方法。它現在說''call'對於'#'是未定義的。我需要做些什麼才能使它工作? –
kornfridge
2012-01-06 14:11:52
@kornfridge查看更新後的答案。 – 2012-01-06 14:13:33
這可以解決問題。公認。再次感謝 – kornfridge 2012-01-06 14:16:05