我使用Devise的內置before_filter :authenticate_user!
。我想在我的應用程序助手中調用我自己的自定義方法,如果用戶未能使用before過濾器(嘗試在註銷時執行操作)。如何以及在哪裏可以做到這一點?before_filter與設計
回答
我會在使用user_signed_in?
的過濾器之前編寫自定義。這隻會返回一個布爾值,而不會執行任何authenticate_user!
所做的重定向類型的操作。
所以,你可以像這樣的過濾器之前寫:
before_filter :custom_user_auth
...
def custom_user_auth
unless user_signed_in?
# Do custom stuff, ultimately restricting access to the
# ...protected resource if it needs to be
end
end
請注意,這個過濾器之前不會保護你的資源從未經授權的用戶,除非該unless
語句的內部區域重定向或渲染。
可以將該方法放入我的應用程序控制器嗎? – user730569 2011-05-17 17:21:39
如果您打算在多個控制器中使用before過濾器,每個控制器都擴展ApplicationController,那麼我會在那裏定義函數。然而,我絕對不會把'before_filter'這行放在應用程序控制器中,因爲你可能只想在某些情況下使用它。 – andrewmitchell 2011-05-17 17:24:13
而不是調用before_filter :authenticate_user!
在你的控制器寫你自己的函數,調用authenticate_user!
。例如:
before_filter :logged_in
...
private
def logged_in
your_function
authenticate_user!
end
- 1. 設計before_filter authenticate_admin?
- 2. before_filter:設計操作不起作用
- 3. 的before_filter與參數
- 4. 問題與的before_filter
- 5. Rails cancan問題與before_filter
- 6. 設計before_filter身份驗證不起作用
- 7. 在軌的before_filter設置變量
- 8. Rails 3 before_filter檢查移動設備後
- 9. Rails從before_filter方法中設置佈局
- 10. Rails設置視圖在before_filter中渲染
- 11. before_filter在創建之前設置主鍵
- 12. 設計與Spring
- 13. 設計與CSS
- 14. Rails 3.2引擎怪異與before_filter
- 15. factory_girl rspec測試失敗與before_filter
- 16. 導軌的before_filter與從方法參數
- 17. 的before_filter與另一個控制器
- 18. 的before_filter:除非與命名空間
- 19. Omniauth Facebook的before_filter?
- 20. 的Rails的before_filter
- 21. Before_filter倒置?
- 22. 回用的before_filter
- 23. rspec +卓越+ before_filter
- 24. rails,模擬before_filter
- 25. Rails模型「before_filter」?
- 26. 的before_filter {@amount = Amount.new}
- 27. 設計會話長度與設計
- 28. 爲具有管理員屬性的用戶設計定義路線和before_filter
- 29. Java與OO設計
- 30. 紋波與設計
你看看使用CanCan進行授權。 – 2011-05-17 17:11:36