0

これは、メソッドへのajaxgetリクエストを作成している私のビューのコードです。campaign_creation

$(document).ready(function(){
    $("#submit").click(function(){
        $.get("/configure_campaign/campaign_creation",{category_name: $("#category_name").val()}, function(data){

            $("#category_name").val('');
            $("#form_add_category").css("display","none");
            alert(data.category_name)

        })
    })
})

これが私のメソッドコードです

def campaign_creation
    if(params[:page_id] and params[:page_access_token])

        abcd=params[:page_id].split("_")
        session[:page_id]=abcd[0]
        session[:page_access_token] = params[:page_access_token]

    else

        category=Category.new
        category.category_name=params[:category_name]
        category.page_id=session[:page_id]
        category.save
        @category=Category.find(1)
        @category.to_json

    end
end

@category変数データでアクセスできるはずだと思います。アラートボックスにデータを入力するだけで、ページの完全なコードがdata.category_name取得され、結果が未定義として取得されます。

4

1 に答える 1

0

アクション用に提供したコードだけでは、JSON 応答をレンダリングすることはできません。あなたのメソッドは、ファイルを見つけて応答をレンダリングcampaign_creationしようとしています。campaign_creation.html.erbtext/html

代わりに、JSON データをレンダリングし、アクションの終了と処理の停止を Rails に明示的に指示する必要があります。

render json: @category and return

dataこれで、Ajax 応答の変数が@campaignの属性にアクセスできることが期待できます:category_name

于 2013-03-06T20:33:52.633 に答える