在rails控制器中发回ajax错误响应

Sending back an ajax error response in rails contoller

本文关键字:ajax 错误 响应 rails 控制器      更新时间:2023-09-26

我正在尝试向rails控制器中的ajax调用发送错误响应。

下面是我的创建操作在我的控制器javascript函数与ajax调用。我需要发回一个错误响应,以便调用ajax请求的错误部分。我不知道如何使它工作。

  def create
    @company = Company.find(params["company_id"])
    @campaign = @company.campaigns.build(campaign_params)
    if @campaign.save
      redirect_to campaign_get_campaigns_path(@company)
    else
      respond_to do |format|
        format.json {render :json => {:error_message => @campaign.errors.full_messages, :success => false } }
      end
    end
  end

$(document).on('click', '#submitCampaign', function (e) {
    $form = $('.new_campaign');
    $.ajax({
        type: "POST",
        url: $form.attr('action'),
        data: $form.serialize(),
        dataType: "json"
    });
    error: function(data) {
        newfunction(data);
    }
});

我在终端中得到的响应是:

Completed 200 OK in 269ms (Views: 0.2ms | ActiveRecord: 9.9ms)

您必须定义响应:status。在这种情况下,422 Unprocessable entity是最佳选择。

format.json { render :json => { :error_message => @campaign.errors.full_messages }, :status => :unprocessable_entity }