2010-12-15 7 views
1

rails 2.3.8では、基本的なbefore_filterの作業をしようとしています。個々のコントローラでこれらのことを行うと動作しますが、今はApplicationControllerでこれを行いたいと思います。Railsは、私のフィルタ定義をApplicationControllerで無視しています

class ApplicationController < ActionController::Base 

    before_filter :hello 

private 

    def hello 
     puts "HELLO!" 
    end 

end 

私はそれは私の他のコントローラクラス内のすべてのフィルタを参照することなく、私のコントローラのアクションのいずれかのを実行する前に、ハロー実行引き起こすためにこれを期待しています。しかし、それはちょうどそれを無視するようだ(こんにちは 'と呼ぶことはありません)なぜそれはかもしれません?

+0

なぜフィルタが呼び出されないと思いますか?テストのためだけにフィルタのリダイレクションやフィルタ全体のコードを投稿してください – Bohdan

+0

私はちょうど "HELLO!"出力(webrickが実行されている端末で期待しています)、エラーを投げる行を追加しましたが、何もありません。 –

答えて

1

にかかわらず、これはあなたを助けにはなりませんが、あなたのコードが正しいと私はそれをテストしたときに動作します知っている:

class MyOtherController < ApplicationController 

ApplicationControllerのみがActionController :: Baseから継承する必要があります。

他のコントローラもActionController :: Baseから継承すると宣言していたため、Railsはフィルターを無視していました。

少なくとも私はこれがはっきりしていると思ったが、このAction Controller Overview guideを読んで、ActionController :: Baseから継承している他のコントローラの例(いくつかの時代)を示している。だからそれは混乱している。いずれにしても、私がActionControllerから継承している場合は、私の問題を解決します

0

私は他のすべてのコントローラは、例えばので、ApplicationControllerに継承しなければならないのRails 3

関連する問題