0

1 つの ajax 呼び出しが完了した後にインスタンス変数を破棄するにはどうすればよいですか。私のアプリのデータは ajax 経由で返され、多くの場合、新しい呼び出しが行われます。以前の呼び出しの値の一部が新しい値と混合して返されます。それは設計の流れと考えられるものですか?それとも、真実/価値を破壊する方法を見つけて頭を動かしますか?

コントローラーの例 -

    def something
    @result = Stuff.find_all_by_requestor_name
    respond_to do |format|
    format.html { render :partial => 'list'}
    format.js
    end
    return @result 
    end

ajax リクエストが値を混同していることに何度か気づきました。ここで大きな間違いをしていますか?

4

1 に答える 1

0

あなたの質問に関する限り、インスタンス変数が呼び出し間で存続する方法はありません。各 http 呼び出しは他の呼び出しから独立しており、変数は次の呼び出しまで存続しません。しかし、以下のコードで奇妙なことに気付きました

def something
    @result = Stuff.find_all_by_requestor_name
    respond_to do |format|
        format.html { render :partial => 'list'}
        format.js
    end
    return @result 
end

上記のコードを見ると、AJAX 要求を取得するコントローラー関数から値を返す理由がわかりません。あなたが望んでいたのは次のことだったと思います

def something
    @result = Stuff.find_all_by_requestor_name
    respond_to do |format|
        format.html { render :partial => 'list'}
        format.js { render :json => @result }
    end
end

最後に戻るのではなくrender、ブロック内にいる必要があります。format.jsそれが役立つことを願っています

于 2012-05-02T04:57:16.493 に答える