2012-04-01 5 views
0

안녕하세요 저는 루비 블록을 배우려고합니다. 그러나 나는이 건설 극복 할 수있는 문제가 있습니다 '로드 5'대신 의이 코드의 결과는 '로드 # {X}에'왜 이해가 안명시 적 루비 블록에 매개 변수 전달

class SomeApp 

    attr_accessor :load_listener 

    def on_load(&block) 
    @load_listener = block 
    end 

    def load(x) 
    @load_listener.call(x) if @load_listener 
    end 

end 

app = SomeApp.new 
app.on_load { |x| puts 'on load #{x}'} 
app.load(5) 

어떤 도움을 주셔서 감사합니다.

답변

5

큰 따옴표 (") 대신 작은 따옴표 (')를 사용하고 있습니다. 문자열 보간 (#{...})은 큰 따옴표로만 작동합니다.

변경 puts 'on load #{x}'에서 puts "on load #{x}"으로 변경하십시오.

+0

맞습니다. 대단히 감사합니다. – bodo