3

快速提问,

我有一些从 StandardError 扩展而来的 ruby​​ 类,例如:

class NotAuthorized < StandarError
end

我只使用这个类来引发这样的控制器中的异常

class SomeController < ApplicationController

  before_filter :is_admin!

  protected
  def is_admin!
     raise NotAuthorized if ...
  end
end

因为 NotAuthorized 类不是模型,所以我觉得它不应该在模型文件夹下。也不是控制器,尽管它仅服务于控制器。你通常把这种类放在哪里?

4

1 回答 1

2

由于您没有谈论您正在使用的rails版本,我将指的是rails4。

从 rails 3 开始(我认为)下的每个文件夹app都会自动加载。考虑到这一点,只要把东西放在它所属的地方app/exceptions app/worker app/whetever

从我的角度来看,例外情况略有不同。他们通常有某种背景。这就是为什么我喜欢他们在某个模块中,即Authorization::NotAuthorized

所以在我的例子中,会有一个名为的关注点Authorization包含这个错误类。

于 2013-10-11T13:12:21.357 回答