用于在rails应用程序中定位错误类的约定

时间:2013-10-11 12:35:52

标签: ruby-on-rails ruby

快速提问,

我有一些从StandardError扩展的ruby类,如:

class NotAuthorized < StandarError
end

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

class SomeController < ApplicationController

  before_filter :is_admin!

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

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

1 个答案:

答案 0 :(得分:2)

因为你没有谈到你正在使用的rails的版本,我将指的是rails4。

从rails 3开始(我认为)app下的每个文件夹都会自动加载。考虑到这一点,只需将其放置在所属的位置app/exceptions app/worker app/whetever

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

所以在我的情况下,会有一个名为Authorization的问题,它包含此错误类。