私は自分のアプリケーションにmixpanelgemを使用しています。ミドルウェアとして機能し、アクションのヘッドにコードを動的に挿入します。特定のアクションに対してオフにできるようにしたいと思います(たとえば、電子メールを送信するアクションがあり、そこにコードを配置したくない場合など)。これを達成する方法についてのアイデアはありますか?
どうもありがとう。
私は自分のアプリケーションにmixpanelgemを使用しています。ミドルウェアとして機能し、アクションのヘッドにコードを動的に挿入します。特定のアクションに対してオフにできるようにしたいと思います(たとえば、電子メールを送信するアクションがあり、そこにコードを配置したくない場合など)。これを達成する方法についてのアイデアはありますか?
どうもありがとう。
mixpanelが宝石を更新したようです
ミドルウェアによるコードの挿入を防止する
注:Rackミドルウェアがセットアップされている場合にのみ適用されます。
場合によっては、ミドルウェアに変更させたくないHTMLのリクエストを送信する必要があります。AJAXリクエストには、ミックスパネルコードが挿入されないように、ヘッダー「SKIP_MIXPANEL_MIDDLEWARE」を含めます。$.ajax("/path/to/api/endpoint", { headers: {"Skip-Mixpanel-Middleware": true}, // valid http headers don't allow underscores and get filtered by some webservers success: function(data) { // Process data here } }); //Alternatively, you can add this line of code to your controller to temporarily disable the middleware: Mixpanel::Middleware.skip_this_request
取得元: https ://github.com/zevarito/mixpanel#prevent-middleware-from-inserting-code
application_controllerクラスで、インスタンスmixpanelにメソッドを追加します。
before_filter :initialize_mixpanel def initialize_mixpanel @mixpanel = Mixpanel::Tracker.new("YOUR_MIXPANEL_API_TOKEN", request.env, true) end
これはによって初期化されるため、他のコントローラーでbefore_filter
使用して、特定のアクション、または特定のアクションを除くすべてのアクションをスキップできます。例:skip_before_filter
class SomeController < ActionController::Base
skip_before_filter :initialize_mixpanel, :only => [ :create, :new ]
# or
skip_before_filter :initialize_mixpanel, :except => [ :update ]
end
これを行う方法を見つけることができず、事後に(gsubを使用して)それを取り除くことになりました。他の誰かが将来より良い解決策を持っているなら、私は間違いなくあなたを正しいとマークします、私はただ質問を閉じたいと思います。ありがとう