0

这是我认为我正在向方法发出 ajax get 请求的代码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.erb文件并呈现text/html响应。

相反,您需要明确告诉 Rails 呈现 JSON 数据以及操作结束并停止处理。

render json: @category and return

现在,您可以期望dataAjax 响应中的变量可以访问@campaign's:category_name属性。

于 2013-03-06T20:33:52.633 回答