我希望這個代碼中插入四個變量(所有隻包含數字字符)插入到表中的SQLite數據庫:問題與Ruby的變量
on :"1" do |m|
local = m.params[1]
local_max = m.params[2]
end
on :"2" do |m|
global = m.params[1]
global_max = p m.params[2]
db.execute("insert into t (local, local_max, global, global_max) values(#{local}, #{local_max}, #{global}, #{global_max})")
end
而是,它會產生一些錯誤:
> [2016/01/07 20:43:09.662] !! bot.rb:88:in `block (4 levels) in
> <main>': undefined local variable or method `local' for
> #<Cinch::Callback:0x00000000c4fe00 @bot=#<Bot nick="cinch">> (NameError)
你確定你想要塊內的'db.execute'行,而不是外部? –
是的,我知道,因爲我知道塊內已經設置了所有4個變量。 – user5603796
我不知道,什麼'on..'事情做,但它只會工作,如果這些'on'塊共享相同的範圍。否則,你有足夠的錯誤 - 你不能訪問局部變量超出其定義的範圍 –