2012-02-19 8 views
0

セッション変数にイベントを保存し、その後のページのkissmetrics javascriptコードに渡すことで、Kissmetricsを自分のレールアプリにインストールします。この方法は、作成されたアカウントの追跡を試みること以外は素晴らしい方法です。アカウントの作成したイベントをセッション変数に保存すると、正常に動作しますが、次のページが読み込まれるまでにセッション変数がなくなったようです。私はどこに削除されているのかを調べるためにそこにデバッガーを置くが、それは何もないようだ。 km_log_eventは、文字列をkm_eventsというセッション変数に格納するメソッドです。ここに私のコードは次のとおりです。セッション変数がリセットされている - わからないところで

accounts_controller /作成 - >

...  
if @account.save 
      log_event("Account", "Created", @account.name) 
      km_log_event("Account Created") 
      redirect_to(welcome_url(:subdomain => @account.subdomain)) 
      @user.activate! 
      @user.add_connection(params[:connect_to]) 
      else 
      render(:action => 'new', :layout => 'signup') 
      end 
... 

sessions_controller /歓迎 - >

def welcome 
    if current_account.new? 
     # Create the session for the owner, the account is brand new 
     current_account.user_sessions.create(current_account.owner, true) 
    elsif current_account.users.last && current_account.users.last.created_at > 1.hour.ago 
     current_account.user_sessions.create(current_account.users.last, true) 
    end 
    redirect_to embedded_invitations_path 
    end 

私はちょうどそれが削除取得された場合ので、私はできないわかりませんこのイベントを記録する。アカウントコントローラの@ account.saveの後で、歓迎のアクションの前に起こっているようです。

UPDATE:ここ

は、私は信じているアカウントモジュール(これは私のコードベースではありません)current_accountが定義されますです。

+0

ブラウザでCookieを有効にしていますか? – bdon

答えて

0

(通常はApplicationControllerにで)あなたのコントローラから以下を削除することでこれを簡単にテストすることができます。これを達成するには、いくつかの設定を行う必要があります。

参照Subdomain Session Not Working in Rails 2.3 and Rails 3 on Heroku with/without a Custom Domain?

+0

が大きくなる可能性があります。私はこれが私が探していたものだと思います。しかし、私はそれをすべてのサブドメインの間に保存したくありません(各アカウントには独自のサブドメインがあるため、セキュリティ上の問題が発生すると思います)。むしろ、signup.website.comとサブドメインの間でセッションを引き継ぐ必要があります。個々のアカウントのサブドメイン間では使用できません。どうやってやるの? –

3

無効なcsrfトークンでセッションがリセットされます。これは起こっていますか?

あなたは私はあなたがサブドメイン間でセッションを共有しようとしているとして、これが起こっていると思います

protect_from_forgery 
+0

protect_from_forgeryを削除しても削除されました。私は、もしcurrent_account.newの後に、歓迎アクションにkm_log_eventを入れましたか?それが効くように思えます。しかし、私はまだセッションvarが削除されている理由を知りたいです。 –

+0

新しいセッションはどのように行われますか?それは既存のものを消去しますか? 'current_account.user_sessions.create'は疑わしく見えます。 –

+1

セッションvarは、そのコード行の前に削除されます。これを行うことを提案する別の方法がありますか? –

関連する問題