我想提出一个异常,这样它就可以做与普通Rails异常相同的事情.特别是,在开发模式下显示异常和堆栈跟踪,在生产模式下显示"我们很抱歉,但出了问题"页面.

我try 了以下方法:

raise "safety_care group missing!" if group.nil?

但它只是给发展写了"ERROR signing up, group missing!"封信.日志(log)文件

推荐答案

你不需要做任何特别的事情,它应该是有效的.

当我有一个新的rails应用程序和这个控制器时:

class FooController < ApplicationController
  def index
    raise "error"
  end
end

http://127.0.0.1:3000/foo/

我看到了一个堆栈跟踪异常.

您可能在控制台日志(log)中看不到整个stacktrace,因为Rails(从2.3开始)是filters lines from the stack trace that come from the framework itself.

请参见Rails项目中的config/initializers/backtrace_silencers.rb

Ruby-on-rails相关问答推荐

Rails 7:加载所有刺激控制器

如何在 Arel 中“重用”单个绑定变量?

将 Ruby 日期转换为整数

Rails 5:重命名表迁移

控制器规格与请求规格?

Rails 5:在生产中加载 lib 文件

为什么我的 RSpec 没有加载 Devise::Test::ControllerHelpers?

等效于 Rails 的安全导航 try for hashes

未捕获的 ReferenceError:未定义 ReactDOM

Rails 5:ActiveRecord OR 查询

错误:删除表违反外键约束.密钥 id 仍然从表中引用(很多)

在 Rails 中,find_each 和 where 有什么区别?

如何更改 Rails 4.2 开发服务器的默认绑定 ip?

Rails 和 jsonb 类型“jsonb”不存在

将 Rails 服务器绑定到 0.0.0.0 能给你带来什么?

在rails 4中没有计数的复数

如何覆盖 ActiveRecord 模型中的 getter 方法?

如何优雅地为“嵌套”哈希符号化密钥

如何从 Sidekiq 清除所有作业(job)?

Rails 4按方法查找或创建不起作用