我有一種方法,我希望根據場景採取不同的行爲,所以我希望能夠將塊傳遞給方法,並在塊給出時執行。紅寶石 - 塊範圍
然而,我通過在我傳遞在塊中的變量的範圍混淆
,例如:
def original_method (a, b, opt = {id: nil, id_map: {}})
element_id = (opt[:id_map])
yield if block_given?
end
並且穿過該塊中的新方法:
def new_method(a, b, opt)
original_method (a, b, opt) do
if(element_id.include? "some text")
puts "it has some text"
end
end
end
但我得到錯誤:
undefined local variable or method `element_id'
在收益率線。
可以這樣做嗎?
您在'(opt [:id_map]'後面缺少右括號' – Cyzanfar