ruby - Rails3 中的 rescue_action 如何工作?

标签 ruby ruby-on-rails-3

我想实现这个

class SecurityTransgression < StandardError; end

 def create
   raise SecurityTransgression unless ...
 end

class ApplicationController < ActionController::Base
  def rescue_action(e)
  case e
    when SecurityTransgression
      head :forbidden
    end
  end
end

来自 this blogpost .

问题是它不起作用。我没有看到禁止页面,而是标准的 Rails 错误页面“SecurityViolation in MyController#action”。我发现一些 rescue_action 方法只在生产模式下有效。我试过了,结果是一样的。没有变化。

我的问题:是否有关于 rescue_action 方法(和其他方法)的任何好的文档?这在 Rails 3.0 下有效吗?因为这个好像有些旧

最佳答案

API documentation 查看 rescue_from .

关于ruby - Rails3 中的 rescue_action 如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5461017/

相关文章:

ruby - 在 Ruby 中,是否有类似于 `any?` 的方法返回匹配项(而不是 `true` )

ruby - Rails ActiveRelation 到哈希

mysql - 502 错误 nginx + ruby​​ on rails 应用程序

ruby-on-rails - Rails 3-ActiveAdmin-显示ActiveRecord对象而不是文本

ruby-on-rails - 如何让 Capistrano 在部署中包含 .htaccess 文件?

ruby - 将 setter 与 instance_variable_set 一起使用

ruby - 如何解决 Windows 上 "libxml2 missing package"上的 "gem install ovirt-engine-sdk"错误?

ruby-on-rails - 如何填充字符串数组以避免嵌套循环

ruby-on-rails - Rails - 带零的条件查询?

ruby-on-rails - 如何从 Ruby On Rails 应用程序连接到 Postgresql