在我的应用/目录中我有一个文件夹服务。要在服务文件夹中自动加载文件,我在" 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