我想動態定義方法並向它傳遞一個參數。這是我到目前爲止有:動態定義方法的默認參數
class Commands
end
@commands = Commands.new
def route(name, &block)
Commands.send(:define_method, name, &block)
end
route 'foo' do
puts 'oh hai'
puts data
end
當route
被調用,這是我所期望的要執行:
data = {name: 'foo', optional: 'bar'}
@commands.send(data['name'].to_sym, data)
失敗的原因data
沒有定義,除非我做這樣的事情:
route 'foo' do |data|
puts 'oh hai'
puts data
end
有沒有辦法傳遞一個默認參數?似乎它是sinatrarb做的,但我還沒有能夠從代碼中做出正面或反面。
我不明白你的意思是「傳遞默認參數」。 –
清澈如泥? :),對不清楚的問題感到抱歉。部分問題肯定是我不知道我應該問什麼是根本問題。 答案顯示在目標上,所以我會試驗並更新我的問題 – Dishcandanty