我使用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:設計操作不起作用
- 2. 的before_filter與參數
- 3. Rails cancan問題與before_filter
- 4. 設計before_filter身份驗證不起作用
- 5. Rails設置視圖在before_filter中渲染
- 6. before_filter在創建之前設置主鍵
- 7. 在軌的before_filter設置變量
- 8. 設計與CSS
- 9. Rails 3.2引擎怪異與before_filter
- 10. factory_girl rspec測試失敗與before_filter
- 11. 設計會話長度與設計
- 12. Before_filter倒置?
- 13. rails,模擬before_filter
- 14. rspec +卓越+ before_filter
- 15. 如何設計與
- 16. 結構與設計
- 17. 測試與設計
- 18. Java與OO設計
- 19. Android設計與iPhone設計,相對與絕對
- 20. cakePHP - before_filter未執行
- 21. Rails 4:before_filter vs. before_action
- 22. Global rails中的before_filter
- 23. 測試用的before_filter
- 24. before_filter not working in state_machine :(
- 25. Symfony2相當於before_filter?
- 26. 界面設計與帆布
- 27. 測試註冊與設計
- 28. RJS與設計寶石
- 29. 與Facebook AppCenter合作設計
- 30. 設計考慮與用戶
你看看使用CanCan進行授權。 – 2011-05-17 17:11:36