1

コントローラで、次のうち左の2つのアクションがありますRails 3のfilter_access_to文から出て行くコントローラのアクションにアクセスできないのはなぜですか?私はdeclarative_authorizationを使用していますが、私が持っている

filter_access_to :index, :new, :edit, :step, :create, :update, :destroy

:show, :compare。しかし、いずれかのアクションのURLに行くと、私はログイン画面に私を送ります。

これはなぜですか?

私がログインしていないときに、そのコントローラに他のフィルタがないことを考えれば、私はそれを見ることができるはずです(ApplicationsControllerから継承したものを除く)?

答えて

3

これは、declarative_authorization ... thats Devise(またはあなたの認証メカニズムが何であれ)ドメインとは関係ありません。代わりに、before_filterを変更して、スキップするアクションの例外を含むようにユーザーが認証されているかどうかを確認します。

例えば、 before_filter :authenticate_user!before_filter :authenticate_user!, :except=>[:public_action, :other_public_action]に変更してください。

また、before_filterがアプリケーションコントローラ内で設定されている場合は、例外を設定するコントローラー内でbefore_filterをオーバーライドしてmodを作成することができます。

関連する問題