在Ruby on Rails的,有沒有在控制器限制某些方法來誰已經登錄的用戶,或具有特殊權限的用戶的一個標準呢?比方說,爲了簡單起見,我有一個博客,我希望每個人都能夠進入「名單」,並在我的控制器「秀」的方法,但我只想要登錄的用戶訪問「編輯」,「更新」 「創造」等方法。我是否必須對邏輯進行編程,或者至少對這些函數中的每一個函數進行調用以檢查用戶訪問權限,還是有更正式的方法?在Ruby中,如何將我的控制器中的方法限制爲特定用戶?
2
A
回答
4
可以使用before_filter。
Class blogController
before_filter :authorize, :except => [:list, :show]
def authorize
#Your code to get a logged in user
redirect_to blog_path unless user
end
2
這就是所謂的Before filter
例如
PostsController < ApplicationController
before_filter :authenticate_admin!, :only => [:index, :show]
+0
這會強制任何人查看索引或顯示爲管理員。我認爲你的意思是:除了而不是:只有? – robzolkos 2011-02-06 13:29:27
1
退房Devise特別是Devise Wiki針對你的問題的一些例子。這將有助於登錄和身份驗證。還檢查出CanCan。這將有助於授權。
隨着設計可以讓每個人都獲得了「指數」(列表)和「作秀」行爲,並限制人們使用在博客/後控制器頂部以下行的其他行爲。
before_filter :authenticate_user! :except=>[:index, :show]
相關問題
- 1. 將控制器限制爲特定請求方法
- 2. 如何限制用戶訪問控制器的特定操作?
- 3. 將APK限制爲特定用戶
- 4. 如何將URL結構從控制器/方法/用戶名更改爲控制器/用戶名/方法
- 5. 如何使用Ruby on Rails link_to與控制器中的方法
- 6. 如何在控制器中測試特定方法
- 7. 的NodeJS + MongoDB中如何限制數據爲特定用戶
- 8. 如何通過腳本在ruby控制器中調用方法?
- 9. 限制在NinjaFramework的控制器方法中的參數個數?
- 10. 如何定義PUT方法在路由中只限制Put方法在沒有參數的控制器中?
- 11. 將服務方法限制在一天中的特定時間
- 12. 使用設計密碼來限制控制器中的方法
- 13. 如何限制Ruby中的Markdown語法?
- 14. 我如何限制導航控制器層次結構中iOS7中的每個視圖控制器的方向
- 15. 限制爲特定視圖的ASP.NET MVC控制器操作
- 16. 控制器中的方法
- 17. 如何獲得用戶輸入以在我的mvc控制器中創建特定方法?
- 18. 如何將對象創建限制到特定類的方法?
- 19. CodeIgniter:無法命中控制器的特定方法
- 20. 控制器中的未定義方法
- 21. 在Zend Studio中,我如何將MVC大綱中的控制器和模型限制爲我創建的那些?
- 22. 如何限制WCF服務方法爲特定的IP
- 23. 如何將complexType限制爲XML Schema中的特定值?
- 24. 如何在基本控制器的OnActionExecuting方法中重定向
- 25. 如何限制Jenkins對特定groupOfNames中用戶的LDAP訪問?
- 26. 如何限制用戶訪問magento中的特定類別?
- 27. 如何在視圖中調用控制器中的方法?
- 28. 如何在控制器中調用模型中的方法
- 29. 在用戶控制中刪除方法
- 30. 如何通過控制器方法打開特定的URL?
如果未經授權,您應該添加before_filter以檢查您是否傾向於重定向 – apneadiving 2011-02-06 13:21:49