我有我的常規ApplicationController類&我有一個Admin :: ApplicationController類。問題是Admin :: ApplicationController似乎沒有被加載或執行或任何東西。我不允許擁有名稱空間的應用程序控制器嗎?想要擁有它的理由是,我可以檢查用戶是否是管理員,如果他們不是,那麼CanCan &將他們重定向。命名空間ApplicationController在Rails中
2
A
回答
4
調用此控制器Admin::BaseController
,因爲它更像是作爲命名空間的基礎,而不是爲應用程序執行任何操作。爲了做到你想做的事情,你需要讓所有的管理員名稱空間控制器繼承自這個控制器。
1
我見過的命名空間的唯一時間是當控制器嵌套在子文件夾中時。所以管理員:: ApplicationController的期望是在控制器/管理/ application_controller.rb
一個可能的解決方案:
如果你想除了你的主頁一切踢出來,只要設定的before_filter您的應用程序控制器與家用/指數像這樣的例外:
ApplicationController.rb
before_filter :authorize_admin
def authorize_admin
//dostuff
end
HomeController.rb
skip_before_filter :authorize_admin, :only => ['index']
索引是您想要跳過的操作。爲了避免整個控制器的過濾器脫落。
相關問題
- 1. Authlogic,命名空間和私有方法在ApplicationController中
- 2. 在rails路由中的命名空間
- 3. 命名空間在rails中的actionmailer
- 4. Rails命名空間路由
- 5. Rails的命名空間模型與非命名空間模型
- 6. Rails中SOAP中的命名空間
- 7. Rails中的Authlogic和命名空間
- 8. rails中的命名空間路由1
- 9. Rails中的Css命名空間
- 10. 命名空間「錯誤頁面」 Rails中
- 11. link_to與Rails中的命名空間
- 12. 命名空間中不存在命名空間名稱'Notify'Twilio.Rest
- 13. 在.net中重命名命名空間
- 14. 在MonoTouch中重命名命名空間
- 15. 如何在多個命名空間中命名空間函數?
- 16. Rails:命名空間資源和非命名空間資源之間的衝突
- 17. 在jQuery中命名空間?
- 18. 在命名空間
- 19. 在命名空間
- 20. 在命名空間
- 21. 在命名空間
- 22. 在Rails中測試ApplicationController before_filter
- 23. Rails的:從ApplicationController中
- 24. Ember-Rails和命名空間模板
- 25. Rails命名空間與嵌套資源
- 26. Rails路由錯誤與命名空間?
- 27. Rails命名空間和路由
- 28. Ruby on Rails命名空間路由
- 29. Rails url_for和命名空間模型
- 30. 紅寶石(/ rails?)頂級命名空間
嗨瑞安,有什麼機會解釋爲什麼控制器應該改名?只是想知道,因爲我有一個功能Admin :: ApplicationController工作得很好。這不就是命名空間的重點嗎? – 2012-01-04 15:57:19
雖然它不是一個ApplicationController。這是命名空間的* base *,其他地方都從其繼承。我的原因主要是因爲它是我們在模型中繼承的`ActiveRecord :: Base`。只是一點點的一致性。 – 2012-01-04 22:09:10