2010-12-02 8 views
3

奇妙な問題の種類は、うまくいけば誰かが私を助けることができます。ajax投稿にレールセッションを設定する

私はjquery ajax投稿経由でヒットしたレイルコントローラにセッションを設定したいと思います。

その正規レールは、私は、AJAXセッションdoesntのは、AJAX呼び出し間で設定されているように見えるが、リードコントローラ

def create 
    @lead = Lead.new(params[:lead]) 
    @lead.save! 

    if @lead.save 
     session[:lead] = "#{@lead.id}" 
    end 

    end 

を打つ

$.post($(this).attr('action'), $(this).serialize(), function(data){ 

}, 'json'); 

を経由して提出した形成します。

誰でもこのアイデアはありますか?

+0

おそらく関連しています:http://stackoverflow.com/questions/5126721/rails-not-reloading-session-on-ajax-post – igorw

答えて

0

あなたは実際にコントローラで呼び出されている作成を確認しましたか(ログに表示されましたか?)

BTW:save()を2回呼びますが、これは問題ではありません(複数回保存を呼び出すと、保存が成功するたびにtrueが返されます)。

+0

はい、ログに表示されています。127.0のPOST "/ leads"を開始しました。 .0.1 at 2010-12-02 21:23:24 +0000 LeadsControllerによる処理#create as JSON – stuartchaney

0

ローカルホストを使用していて、適切なドメインではないため、一部のブラウザではこのようなセッションを無視していると聞いている可能性があります。

偽造攻撃を阻止するために使用されるCSRF認証トークンを送信しないという別の問題があります。これは現在、フォームだけでなくデフォルトでXHR要求の要件です(ただし、あなたの元の投稿の時間)。