5
A
回答
5
before_filter {authenticate_user! || authenticate_admin!}
將proc傳遞給before_filter方法將與您提供的問題最接近。
-2
由於:authenticate_user!
是一個符號,:foo == true
是有效的。因此,你的榜樣將永遠只是等同於before_filter :authenticate_user!
試着這麼做(不知道你的設置在這裏的..):
if method_defined?(:authenticate_user!)
before_filter :authenticate_user!
else
before_filter :authenticate_admin!
end
如果定義了兩種方法,並希望運行authenticate_user!
那麼如果將返回假,運行authenticate_admin!
,只是做一個authenticate!
方法,檢查使用/管理和運行before_filter
。
+1
':foo == true'不正確(不是雙關)。用irb檢查一下。你可能想說「:foo是一個真正的價值」。 – whitequark 2012-01-19 11:10:38
6
before_filter :do_authentication
def do_authentication
authenticate_user! || authenticate_admin!
end
相關問題
- 1. Rails - 使用before_filter運行方法
- 2. before_filter運行多個時間和增長
- 3. 如何在before_filter中運行兩個方法?
- 4. 'before_filter'未定義的方法
- 5. Rails的:如何使用的before_filter來保護多個方法
- 6. 如何before_filter Module :: Class ::方法?
- 7. 連續運行多個query()方法
- 8. 帶gsub方法的model上的before_filter
- 9. 帶參數和私有方法的before_filter
- 10. 導軌的before_filter與從方法參數
- 11. 繼承'before_filter'風格的方法
- 12. Rails:關注before_filter類型的方法
- 13. 的Rails的before_filter檢查多個角色
- 14. 無法多次運行方法
- 15. 無法在單個控制器中運行多個GET方法
- 16. 的before_filter檢查多個角色
- 17. 硒多次運行同樣的方法
- 18. PHP:運行另一個類方法時運行類方法?
- 19. 哪個方法運行
- 20. 模型級方法調用before_filter
- 21. Rails從before_filter方法中設置佈局
- 22. before_filter從另一個控制器的方法
- 23. 沒有運行的方法中發現運行多個JUnit4測試套件
- 24. cakePHP - before_filter未執行
- 25. 無法並行運行多個腳本
- 26. 多個複選框運行不同的方法
- 27. 運行多個shell命令的有效方法?
- 28. 在運行時切換的PHP多個__toString方法
- 29. 使用javax.script運行多個腳本的有效方法
- 30. Android:在運行時多次檢查另一個類的方法
authenticate_user! || authenticate_admin! 不起作用。資源不是用戶的那一刻它不會檢查authenticate_admin!並會提高未經授權的身份。 – 2015-01-01 10:26:52