Как установить before_action для метода маршрутизации в фреймворке бота Stealth? - PullRequest
0 голосов
/ 12 сентября 2018

Я пытаюсь использовать before_action's callback в моем Stealth боте, но это не работает. Я не знаю, правильно ли это следовать.

Это мой код:

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 "\n\n\n\n\n aaaaaaaaaaaaaaaaaaa \n\n\n\n"
  end

end

Ничего не происходит, нет ошибок, нет печатных сообщений.

Что может быть не так?

EDIT:

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.

1 Ответ

0 голосов
/ 12 сентября 2018

Хорошо, я знаю причину, по которой это не работает, route не является действием, это всего лишь специальный метод Stealth::Controller, поэтому обратные вызовы не будут вызываться before_action или другим обратным вызовом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...