私のアプリケーションにはthe mixpanel gemを使用しています。これはミドルウェアとして機能し、アクションのためにコードを頭に動的に挿入します。私は特定のアクション(例えば、電子メールを送信するアクションがあり、そこにコードを持っていないと思います)のためにそれを無効にしたいと考えています。どのようにこれを達成するための任意のアイデア?Rubyでミックスパネルミドルウェアを呼び出す
ありがとうございます。 the Mixpanel docsから
私のアプリケーションにはthe mixpanel gemを使用しています。これはミドルウェアとして機能し、アクションのためにコードを頭に動的に挿入します。私は特定のアクション(例えば、電子メールを送信するアクションがあり、そこにコードを持っていないと思います)のためにそれを無効にしたいと考えています。どのようにこれを達成するための任意のアイデア?Rubyでミックスパネルミドルウェアを呼び出す
ありがとうございます。 the Mixpanel docsから
はmixpanelコード
注意を挿入しupdated彼らの宝石
防止ミドルウェアを持っているようだ:ラックミドルウェアを設置している場合にのみ適用されます。
場合によっては、ミドルウェアに変更させたくない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
それはあなたが、例えば、よく、特定のアクションのために、または特定のアクション以外のすべてのためにそれをスキップするためにあなたの他のコントローラにskip_before_filter
を使用することができますbefore_filter
によって初期化されますので:
class SomeController < ActionController::Base
skip_before_filter :initialize_mixpanel, :only => [ :create, :new ]
# or
skip_before_filter :initialize_mixpanel, :except => [ :update ]
end
。実際には、before_filterではなく、middleware経由で呼び出されます。このように:config.middleware.use "Mixpanel :: Tracker :: Middleware"、 "API_KEY" –
ああ、残念です。ドキュメンテーションは不明瞭だった(あるいは、おそらく、ミドルウェアの仕組みについての私の記憶はあいまいである)。うまくいけばもっと知っている人がやってきます。それ以外の場合は、開発者に直接質問することもできます。 [これは役に立つかもしれません](http://stackoverflow.com/questions/920719/how-do-i-use-a-rack-middleware-only-for-certain-paths) Mixpanel :: Tracker)、または[This](http://stackoverflow.com/questions/4598264/use-some-middleware-only-for-specific-rack-website)(類似した)がんばろう! –
ジョーダンのリンクをありがとう、私はそれらをチェックします –
私たちはこれを行う方法を理解することができず、事実の後で(gsubを使って)それを取り除き終えました。他の誰かがもっと良い解決策を持っているなら、私は間違いなくあなたのものを正しいものとしてマークします。質問を閉じるだけです。おかげ
恐ろしい、それはそれを解決するように見えます。私はもうそのプロジェクトに取り組んでいないので、検証できませんが、実際のソリューションであるため、あなたのものを正しいものとしてマークします。ありがとう! –