javascript - 在 Rails Controller 中发回 ajax 错误响应

标签 javascript jquery ruby-on-rails ajax controller

我正在尝试向 Rails Controller 中的 ajax 调用发回错误响应。

下面是我在 Controller 中创建的操作,即带有 ajax 调用的 javascript 函数。我需要发回错误响应,以便调用 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 UnprocessableEntity

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

关于javascript - 在 Rails Controller 中发回 ajax 错误响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24069807/

相关文章:

javascript - Jquery 重新加载整个页面而不仅仅是表单提交

javascript - 安全地清理用户在 Rails 中上传的 json

javascript - 文本区域中的对象数组条件样式。 Angular 6

javascript - 警报在不使用 Ajax 的情况下从数据库查询的 java 脚本中的值

javascript - 自定义 Facebook 分享按钮不起作用

javascript - 如何使用父/子在javascript中选择正确的div

javascript - 大背景图像交换

javascript - YouTube 标题、分享、观看按钮已删除

javascript - 返回主页时小部件不会重新加载

ruby-on-rails - Heroku + Rails + Angular = 未知提供商 : eProvider <- e