0
我使用ERB和實施#to_s時遇到奇怪的行爲 - 例如:ERB:NameError.message創建不會呼籲紅寶石#to_s> 2.0.0
require "erb"
TEMPLATE = "<%= not_here %>"
class A
def to_s
"class <A>"
end
def to_str
to_s
end
def render
begin
ERB.new(TEMPLATE, nil, '-').result(binding)
rescue Exception => e
print e.to_s
end
end
end
A.new().render
關於Ruby 1.9.3本打印undefined local variable or method 'not_here' for class <A>:A
關於紅寶石2.0.0這打印undefined local variable or method 'not_here' for #<A:0x007f98a29a88b8>
有人可以解釋爲什麼是這樣的情況下,如何做到這一點,以獲得相同的輸出在這兩個ruby版本。