2017-08-23 89 views
0

我在哪裏定義authenticate!以獲得Blazer的定製認證?Blazer的定製認證(Rails)

我在這(取消註釋)線我config/blazer.yml(如Authentication > Other下的自述中描述):

before_action: :authenticate! 

當我刷新我的應用程序,我得到這個錯誤:

NoMethodError at/undefined method 'authenticate!' for #<Blazer::QueriesController:0x007ffe26447830> 

那班級由布萊澤寶石定義。我是否應該以某種方式添加/重新定義其方法authenticate!

我嘗試添加一個initializers/blazer.rb文件,其中我定義:

class Blazer::QueriesController < Blazer::BaseController 
    def authenticate! 
    true 
    end 
end 

但是現在,當我點擊 「新建查詢」,在西裝外套,我得到這個錯誤:

NoMethodError in Blazer::Queries#new undefined method `errors' for nil:NilClass 

的Rails 4.2.5 ,西裝外套1.8.0

回答

2

您應該將您的自定義方法添加到application_controller.rb。然後,您將方法的名稱放入config/blazer.yml中進行連線。

我會推薦使用Devise進行驗證。 Devise wiki有一篇很好的文章here。發動機和西裝外套的路線也必須按照演示here進行保護。

+0

謝謝,'application_controller'是正確的。然而,最後兩句話可能會讓人們感到困惑,因爲如果通過Devise進行身份驗證,Blazer wiki有不同的說明,請參閱:https://github.com/ankane/blazer#devise。如果您刪除或修改您的評論,請接受評論。謝謝 – Justin

+0

我更新了我的答案,以包含來自自述文件的路徑保護。 –