【发布时间】:2015-05-15 10:01:55
【问题描述】:
我正在尝试在 Rails 中创建自定义异常,但我设计的解决方案有问题。
这是我到目前为止所做的:
-在app/文件夹中创建一个名为errors/的文件夹,其中包含一个文件exceptions.rb。
app/errors/exceptions.rb:
module Exceptions
class AppError < StandardError; end
end
- 在我的一个控制器中,试图抬起它:
引发异常::AppError.new("用户未被授权")
但是当我调用控制器的动作时,我得到的是:
NameError (uninitialized constant Exceptions::AppError
Did you mean? TypeError
KeyError
IOError
EOFError
Did you mean? TypeError
KeyError
IOError
EOFError
):
我想我还没有完全理解如何创建和使用新目录和文件。
我已经读到在app 目录中创建的所有内容都是急切加载的,所以我不明白问题出在哪里。
【问题讨论】:
-
是否必须为异常创建 *.rb 文件?因为使用 *.yml 文件可以让您在访问自定义书面异常时获得更好的灵活性和更少的痛苦。
-
我更喜欢使用和rb,但老实说我不知道你如何使用你建议的方法。有链接吗?
-
在config/application.rb中加入这一行:
require_relative 'app/errors/exceptions' -
@Aetherus,似乎不起作用:
NameError (uninitialized constant User::CustomersController::Exceptions -
语法通常是
raise Exceptions::AppError, "message"
标签: ruby-on-rails ruby exception ruby-on-rails-4