2013-10-11 33 views
2

快問位置,公約錯誤類的Rails應用程序中

我從StandardError的延伸,像一些Ruby類:

class NotAuthorized < StandarError 
end 

我使用這個類只提高在控制器異常像這樣

class SomeController < ApplicationController 

    before_filter :is_admin! 

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

由於NotAuthorized類不是模型,我不認爲它應該在模型文件夾下。也不是控制器,儘管它僅用於控制器。 你通常會把這類課程放在哪裏?

+0

'/ lib'文件夾是一個選項..通常用於擴展 – tihom

+0

我發現這個http://stackoverflow.com/questions/5200842/where-to-define-custom-error-types-in-ruby-and -or-rails?rq = 1也回答我的問題 –

回答

2

因爲您沒有談論您正在使用的導軌版本,所以我將引用rails4。

從rails 3開始(我認爲)app下的每個文件夾都會自動加載。考慮到這一點,只需將它所屬的物品放入其中即可。app/exceptionsapp/workerapp/whetever

從我的角度來看,例外情況有些不同。他們通常有某種背景。這就是爲什麼我喜歡他們在一些模塊,即Authorization::NotAuthorized

所以在我的情況下,會有一個名爲Authorization的問題存在這個錯誤類。

+0

是的,Rails 4 –