我正在使用Stealth创建一个简单的聊天机器人。
例如,如果我的hellosController中发生异常,则显示消息CatchAll level1 triggered for error
,但从不调用leve1动作。我进行了更深入的研究,对我来说,lib/stealth/controller/catch_all.rb:16 CatchAllFlow
未定义,而必须输入if condition
。
要复制
重现行为的步骤:
1.创建一个新项目stealth new teste
2.添加gem'stealth-facebook'并进行配置。
3.在HellosController-> say_hello中添加一个例外示例,例如1/0
class HellosController < BotController
def say_hello
1/0
send_replies
end
end
[catch_all] CatchAll level1 triggered for error-1540684789327149-hello-say_hello: divided by 0
但是从不调用level1动作。预期的行为
应该调用CatchAll-> level1动作?
桌面(请填写以下信息): -作业系统:Ubuntu -浏览器Chrome
其他上下文
生成的FlowMap
class FlowMap
include Stealth::Flow
flow :hello do
state :say_hello
end
flow :goodbye do
state :say_goodbye
end
flow :catch_all do
state :level1
end
end
如何定义异常后如何强制隐身执行CatchAllFlow
操作中的level1
?