ruby-on-rails-5 - catch :abort signal thrown in Rails 5 controller的最佳方法

标签 ruby-on-rails-5 actioncontroller

在Rails 5中,当回调需要取消以后的回调时,recommended process is documented为“您应该显式throw :abort”。

我的问题是:如何建议捕获此异常?

我当前的解决方案是在UncaughtThrowError中捕获ApplicationController-考虑到它的记录方式,我认为此功能将在Rails或Rack中间件中触发一些魔术,以立即进入呈现(ActionView)阶段。

最佳答案

这是some examples of how to use the throw/catch in ruby

对于Rails,我认为这样可以解决问题:

class SomeController 
  def some_method 
    if catch(:abort) { mode.save }
      # success
    else
      # failure 
    end
  end
end

关于ruby-on-rails-5 - catch :abort signal thrown in Rails 5 controller的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41923583/

相关文章:

ruby-on-rails - 在引发错误的方法中调用 RSpec 测试 Rollbar

mysql - delete_all 是否会忽略基于连接表的条件?

ruby-on-rails - 如何从 Controller 中包含的模块渲染js模板?

ruby-on-rails - 一个 Controller ,普通用户和管理员的不同 View

ruby-on-rails - 为什么 Controller 操作应该调用一个模型方法而不是初始查找或新方法?

arrays - Ruby/RoR 中多维数组的分组/过滤子数组

ruby-on-rails - 修补 ActiveStorage::Attachment 的猴子丢失了

ruby-on-rails-5 - rails 用 cancancan 管理

ruby-on-rails - 我在 ActionController 中遇到路由错误,直到重新启动 rails 服务器

ruby-on-rails - Rails Controller 手动清理参数