【问题标题】:Raising custom Errors in Rails 4在 Rails 4 中引发自定义错误
【发布时间】:2014-11-29 10:46:25
【问题描述】:

我已经添加了

config.autoload_paths << Rails.root.join('lib')

到模块内我的application.rb 文件并添加了一个文件

lib/my_app_name.rb包含

module MyAppName
  class MyError < StandardError
  end
end

但是当我尝试像这样从我的模型中引发错误时

raise MyAppName::MyError, "There was a problem"

它返回这个...

uninitialized constant MyAppName::MyError

我觉得文件是从我的 lib 目录加载的,因为我正在使用从那里自动加载的其他文件,但似乎无法弄清楚为什么无法识别错误。

提前感谢您的任何建议。

【问题讨论】:

  • 这不起作用,因为您没有创建正确的目录结构。您需要创建 my_app_name/my_error.rb,然后自动加载将像魅力一样工作。
  • 成功了——感谢 Kuldeep!

标签: ruby-on-rails ruby error-handling autoload


【解决方案1】:

我的应用程序中包含一个类似的模块,我引用其中的方法如下:

modulename.methodname

我知道您在模块中声明了一个类,所以这与我的情况有点不同,但是您是否尝试过这种引发错误的方式?

MyAppName.MyError

【讨论】:

  • 感谢您的回复 readyornot 但在我的情况下,Kuldeep 解决了这更像是一个目录结构问题。
  • 没问题,很高兴您的代码正常工作。作为参考,我的模块 .rb 文件位于 lib/helpers 中。
猜你喜欢
  • 2014-07-23
  • 1970-01-01
  • 1970-01-01
  • 2015-07-14
  • 2013-09-06
  • 1970-01-01
  • 2018-12-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多