私は通常の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. 名前空間
- 3. 名前空間
- 4. 名前空間
- 5. 名前空間
- 6. WPF:XAML名前空間
- 7. C++ - 名前空間
- 8. 無名名前空間
- 9. angularjs名前空間
- 10. IInvokeProvider名前空間?
- 11. IPython.parallel名前空間
- 12. 名前空間&__autoload
- 13. 名前空間dict?
- 14. html:FBML名前空間
こんにちはRyan、コントローラーの名前を変更する理由を説明する機会はありますか?ちょうどうまく動作する機能的なAdmin :: ApplicationControllerを持っているので、私は思っています。それは名前空間のポイントではありませんか? –
それはApplicationControllerではありません。名前空間のための基底*は、どこからでも継承されます。私の主な理由は、私たちがモデルから継承した 'ActiveRecord :: Base'だからです。ちょっとした一貫性。 –
ありがとうございます。私のアプリでは、一貫性は別の方法です。 Admin :: ApplicationControllerはActionController :: Baseから継承します。すべての目的と目的のために、/ adminはメインアプリ内の別のアプリです。それは私のためにかなりうまくいく。 –