带有ROR的自动加载自定义异常文件



在我的应用/目录中我有一个文件夹服务。要在服务文件夹中自动加载文件,我在" config/spring.rb"

中添加了"应用/服务"
%w(
  .ruby-version
  .rbenv-vars
  tmp/restart.txt
  tmp/caching-dev.txt
  app/services
).each { |path| Spring.watch(path) }

工作正常。但是现在,我想为我的自定义异常创建一个sub dir(在app/services/errors/(。但是,当我尝试在弹簧中添加一条新线时。rb:

%w(
      .ruby-version
      .rbenv-vars
      tmp/restart.txt
      tmp/caching-dev.txt
      app/services
      app/services/errors
    ).each { |path| Spring.watch(path) }

它不起作用,我得到了一些:

NameError:
       uninitialized constant SixError

在这里我的自定义错误文件(app/services/errors/six_error.rb(:

class SixError < RuntimeError
end
class NilTokenError < SixError
end
class SixRequestFailed < SixError
end
class NoAliasRequestPendingError < SixError
end
class AmountLessThanZeroError < SixError
end
class NilAliasError < SixError
end

这就是我这样称呼的方式:

SixError::SixRequestFailed

rails正在用与dirname相对应的名称空间在subdir中加载类。
如果您有此结构:
- 应用
- 服务
---错误
----六_ERRORS.RB

导轨期望文件six_errors.rb在命名空间Errors上声明类。

在您的情况下,您应该在名为Errors的模块中声明所有错误类。

module Errors
  class SixError < RuntimeError; end
end

最新更新