私は通常のApplicationControllerクラスを持っています&私はAdmin :: ApplicationControllerクラスを持っています。問題は、Admin :: ApplicationControllerがロードされたり実行されたりしていないように見えることです。名前空間のアプリケーションコントローラを持つことはできませんか?私がCanCanで管理しているかどうか確認することができるように、CanCan &がそうでない場合にそれらをリダイレクトすることができます。名前空間ApplicationController in 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
:このようなホーム/インデックスのための例外を除いて210skip_before_filter :authorize_admin, :only => ['index']
ここで、indexはスキップするアクションです。唯一オフのままにして、コントローラー全体のフィルターをスキップしてください。
+0
私は 'before_filter'で認証メソッドを使うほうが簡単だろうと思っています。名前空間を使用することは、私にとっては不要な複雑さのようです。 –
関連する問題
- 1. Ruby On Rails - 名前空間
- 2. Rails 3.1に名前空間を含める名前空間アプリケーションのHAMLビュー
- 3. Railsアプリケーションの名前空間モデル
- 4. Ember-Railsと名前空間テンプレート
- 5. 名前空間
- 6. 名前空間なしのGroovy XMLSlurper名前空間エラー
- 7. WPF:XAML名前空間
- 8. 無名名前空間
- 9. Railsのルーティング:スコープにネスト名前空間は、Railsの3.2
- 10. html:FBML名前空間
- 11. 名前空間&__autoload
- 12. 名前空間dict?
- 13. 名前空間カスタムイベントトリガー
- 14. IPython.parallel名前空間
- 15. IInvokeProvider名前空間?
- 16. angularjs名前空間
- 17. SpringのXML名前空間
- 18. 名前空間のライン
- 19. Rails-3の名前空間コントローラでエラーが発生する
- 20. respond_withと名前空間
- 21. はNDBは、名前空間
- 22. gulpの名前空間
- 23. 名前空間 'SqlServer'が名前空間 'Microsoft.Synchronization.Data'に存在しません
- 24. 名前空間 'Extensions'が名前空間 'Microsoft.Office.Tools.Excel'に存在しません
- 25. 名前空間付きモジュールとRails 3.1.3 autoload_path
- 26. 名前空間のエラー
- 27. 名前空間と単位
- 28. 純名前空間質問
- 29. WMI名前空間 "Not Found"
- 30. PHPの名前空間5.2
こんにちはRyan、コントローラーの名前を変更する理由を説明する機会はありますか?ちょうどうまく動作する機能的なAdmin :: ApplicationControllerを持っているので、私は思っています。それは名前空間のポイントではありませんか? –
それはApplicationControllerではありません。名前空間のための基底*は、どこからでも継承されます。私の主な理由は、私たちがモデルから継承した 'ActiveRecord :: Base'だからです。ちょっとした一貫性。 –
ありがとうございます。私のアプリでは、一貫性は別の方法です。 Admin :: ApplicationControllerはActionController :: Baseから継承します。すべての目的と目的のために、/ adminはメインアプリ内の別のアプリです。それは私のためにかなりうまくいく。 –