2011-07-10 4 views
0

私はまもなく来るべきページを持つサイトを持っています。これは、データベース内のブール値とアプリケーションコントローラがbefore_filterで呼び出すメソッドによって管理されています。skip_filter in rails

def is_it_live? 
    @setting = Setting.find(1) 

    if @setting.is_it_live 
    return true 
    else 
    unless admin_signed_in? 
     redirect_to comingsoon_path 
    end 
    end 
end 

私は、サイトが生きていない場合は、公開する必要があり、特定のコントローラ、comingsoonためだ具体的には、1つの上skip_filterを使用しようとしました...が、それは働いていません。アプリケーションコントローラでbefore_filterがまだ実行されているため、私は来るべきパスに行くとリダイレクトを取得しています。とにかくこれを修正するには?または、ロジックを処理するためのより良い方法は?

答えて

0

まあ、私は問題を解決しました。私もビューのロジックを使用するヘルパーメソッドとしてis_it_live?を宣言していたので、ビューはまだフィルタがビューから呼び出されている可能性があります(ビューのコントローラがフィルタチェーンからそれを削除しているようですが、それもビューを削除する必要がありますか?しかし、多分私の思考はちょっと離れている)、それを取り出して問題を修正しました。

1

奇妙な、あなたがしようとしました:

skip_before_filter :is_it_live, :only => [:action1, :action2] 
+0

ええと...私が最後にチェックしたとき、すべてがうまくいきました。 – Slick23

+0

それは狂っている、あなたのルートは確実ですか? – apneadiving

+0

ええ、少なくとも私は思う: 'comingsoon /comingsoon(.:format){:action =>" index "、:controller =>" temporary "}' – Slick23