2017-12-02 12 views
0

私はレールアプリを持っています。アプリケーションコントローラーでbefore_actionを使用して、識別されたすべてのユーザーの変数を取得します(ヘッダーに使用するので、すべてのビューで必要です)。Rails:アプリケーションコントローラのbefore_actionに対する投稿リクエストを除外する方法

しかし、変数を必要としないすべての投稿要求が遅くなります。私はそれをグーグルで見つけようとしましたが、何も見つかりませんでした。また、アプリケーションコントローラのベストプラクティスがわかりません...

このbefore_actionの投稿要求をすべて除外するにはどうすればよいですか?

一つの解決策は、すべての私のコントローラ内のコードをコピー/ペーストすることですが、それは最高の...

おかげではないようです。あなたは多くの方法でそれを行うことができますPOSTリクエスト

before_action :method_name, except: [:create, :update] 

答えて

1

にbefore_actionを呼び出してから停止するには

1

。そして、あなたが持っているあなたが他のメンバーまたはコレクションのルートにスキップしたい場合は、あなたのアプリケーションは、多くのルートを持っている場合skip_before_actionを使用する必要があります

before_action :method_name, except: [:create, :update] 

:除くと 以下のようなだけと前を除いて、アクションを使用することにより、1つすべてのコントローラのスキップを追加します。

投稿リクエストのみをスキップする場合は、すべての投稿リクエストを除外するには、メソッド(before_actionメソッド)を次のように少し変更できます。 (putとdeleteを含むすべてを受け入れることを覚えておいてください)。

def method_name 
    return if request.post? 
    do your stuff 
end 

他の方法では、もう1つのことは取得要求のみを許可することができます。

def method_name 
    return unless request.get? 
    do your stuff 
end 
+0

これをアプリケーションコントローラで使用することもできませんでした。ありがとう、それは動作します。 – AlphaNico

関連する問題