在鞋子红宝石中点击按钮时返回一个值

时间:2014-10-13 00:27:07

标签: ruby shoes

我有一个使用鞋子的应用程序。在模型中,我有

def run()
    query = get_queries
    executeQuery(query)
    run()
end

然后这个get_queries会附加一些按钮来叠加,比如说

button "do 1" 
button "do 2" 
button "do 3" 
button "do 4" 

如果用户点击按钮,get_queries应该返回相应的查询(有时它可能会询问用户更多信息,所以基本上,它返回一个包含查询和信息的数组)。然后删除按钮。

但是,我很困惑如何让按钮返回该功能的值。我想过使用变量并检查变量是否由忙等待更新,但我认为这不是有效/正确的方法。

有什么建议吗?或者还有另一种方法吗?

1 个答案:

答案 0 :(得分:0)

我认为你需要让你的程序有所不同。让get_queries将按钮附加到堆栈,就像现在一样,但是将其他东西从run方法移动到另一个只在按钮收到click事件后调用的方法。

def on_click(button_number)
  executeQuery(button_number)
  run()
end

button "do 1" do
  on_click 1
end

button "do 2" { on_click 2 }
button "do 3" { on_click 3 }
...