我正在尝试在我的隐形机器人中使用before_action's
回调,但不起作用。我不知道这是否是一种正确的遵循方式。
这是我的代码:
class BotController < Stealth::Controller
helper :all
before_action :print_this, only: :route
def route
if current_session.present?
step_to session: current_session
else
step_to flow: 'hello', state: 'say_hello'
end
end
def print_this
puts "nnnnn aaaaaaaaaaaaaaaaaaa nnnn"
end
end
没有任何反应,没有错误,没有打印消息。
可能出了什么问题?
编辑:
before_action
在另一个控制器中工作,但在BotController
中不起作用
编辑2:这是一个带有行为的日志:
1(使用before_action :print_this, only: :route
sidekiq_1 | 2018-09-12T17:13:10.544Z 1 TID-gt9nk8dzx Stealth::Services::HandleMessageJob JID-1b773e7908fcb72b7aa10a3d INFO: start
sidekiq_1 | [previous_session] User 160479129292600: setting to
sidekiq_1 | [session] User 160479129292600: setting session to hello->say_hello
sidekiq_1 | [previous_session] User 160479129292600: setting to hello->say_hello
sidekiq_1 | [session] User 160479129292600: setting session to main->show_menu
sidekiq_1 | 2018-09-12T17:13:11.738Z 1 TID-gt9nk8dzx Stealth::Services::HandleMessageJob JID-1b773e7908fcb72b7aa10a3d INFO: done: 1.194 sec
2(使用before_action :print_this, only: :say_hello
(say_hello
是这里的HellosController < BotController
工作的一个动作
sidekiq_1 | 2018-09-12T17:18:24.751Z 1 TID-gte80drk9 Stealth::Services::HandleMessageJob JID-62e6901208770b68439ac083 INFO: start
sidekiq_1 | [previous_session] User 1604791292926176: setting to atendimento->say_meus_atendimentos
sidekiq_1 | [session] User 1604791292926176: setting session to hello->say_hello
sidekiq_1 |
sidekiq_1 |
sidekiq_1 |
sidekiq_1 |
sidekiq_1 |
sidekiq_1 | aaaaaaaaaaaaaaaaaaa
sidekiq_1 |
sidekiq_1 |
sidekiq_1 |
sidekiq_1 | [previous_session] User 1604791292926176: setting to hello->say_hello
sidekiq_1 | [session] User 1604791292926176: setting session to main->show_menu
sidekiq_1 | 2018-09-12T17:18:25.524Z 1 TID-gte80drk9 Stealth::Services::HandleMessageJob JID-62e6901208770b68439ac083 INFO: done: 0.772 sec
这是,不是只在BotController
工作。
好的,我知道这不起作用的原因,路由不是一个动作,只是一个特殊的Stealth::Controller
方法,所以回调不会被before_action
或其他回调调用。