- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 before_action's
在我的 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
没有任何反应,没有错误,没有打印消息。
有什么问题吗?
编辑:
before_action
在另一个 Controller 中工作,但不在 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
HERE WORKS 的一个 Action
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
中不起作用吗?仅。
最佳答案
好的,我知道这不起作用的原因,route不是 Action ,只是 Stealth::Controller
的一个特殊方法,所以回调不会被 before_action
或其他回调调用。
关于ruby - 如何在 Stealth bot 框架中设置 before_action to route 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52295623/
我有请求 Controller : class RequestsController < ApplicationController before_action :set_request, onl
我的用户模型中有一个 admin:boolean 字段,并且希望能够在用户是管理员之前检查我的 Controller ,然后才能编辑任何内容。 如何修改 before_action :authenti
我想在模块中使用“before_action”。 不幸的是,我无法让它工作。 我在用谷歌搜索,但我发现的一切都无法解决问题。 我的模块文件如下所示: module ShowController i
我有一个像这样的 before_action 方法: def current_user @current_user ||= User.find(:id => session[:id]) end 然
我正在开发一个带有很多 before_actions 的 Controller 的应用程序。它们中的大多数通过它们设置的实例变量相互连接。例如: def first_action @first_v
我正在学习 Hartl 的 Ruby on Rails 教程。在执行第 11 章时,我更新了 UserController 中的 before_actions 并且认为顺序无关紧要。所以我的看起来像这
我有几个 Controller : class First < ApplicationController before_action: do_this before_action: do
我在我的 Controller 类中使用类似这样的东西: before_action :do_something, only: [:new, :create] def new @myModel
假设我有一个发送不同电子邮件的邮件程序,但预计会使用相同的参数调用。我想为所有邮件操作处理这些参数。因此,调用一个 before_action 来读取发送到邮件程序方法的参数 /mailers/my_
我想知道为什么在 before_action 中有 redirect_to 或 render 时没有双重渲染。考虑这个例子: class SomeController < ApplicationCon
我有以下代码: class SupportsController < ApplicationController before_action :set_support, only: [:show,
我在我的 Controller 规范中使用了这个: controller.class.skip_before_action 具体来说,在这种情况下: controller.class.skip_bef
我试图要求在Rails 4网站上的所有页面上登录。 在ApplicationController中,我添加了before_action :authenticate_user!,但它根本不执行任何操作。
class ApplicationController < ActionController::Base before_action :test, only: [:index]
我正在使用 before_action 过滤器调用 authenticate,这是一种方法,如果用户无权访问该页面,该方法会将用户重定向回其主页已请求。 我想从该步骤中排除某个页面,仅用于测试目的。
RubyMine7.0.1 在每个 Controller 类中显示此警报。 下面是 Controller 类文件。谢谢。 application_controller.rb class Applica
我在下面的第二行(第二个 before_action)得到一个 SyntaxError。如何将第一个 before_action 产生的变量 (@organization) 传递给第二个 before
在 Rails 应用程序中,我有一个发送 webhook 消息的 before_action 过滤器。由于我有几个 Controller ,我希望 before_action 对其执行操作,是否有一种
我想在命中任何 Controller 方法之前使用传入请求的 remote_ip 执行数据库查找,以便设置特定的 Controller 类属性。但是,如果查找失败(如果没有对象链接到请求 IP),我想
我知道使用以下代码: before_action :signed_in?, only: [:new] 行动new如果 signed_in? 将被执行返回 true,但如果我想要 new signed_
我是一名优秀的程序员,十分优秀!