Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jqueryajax:当服务器端验证失败时,如何显示Flash错误消息?_Jquery_Ruby On Rails_Validation - Fatal编程技术网

jqueryajax:当服务器端验证失败时,如何显示Flash错误消息?

jqueryajax:当服务器端验证失败时,如何显示Flash错误消息?,jquery,ruby-on-rails,validation,Jquery,Ruby On Rails,Validation,我使用Jquery表单插件通过ajax提交表单。我已经在模型的服务器端设置了验证。现在,当验证失败时,我希望使用ajax向用户显示相同的flash[:error]消息。如果验证成功,我可以在请求完成后显示flash[:notice]。如何显示flash[:error]?我找到了这个 如果有人有更好的解决方案,请发布,我会接受。从Rails应用程序返回HTML错误状态。在.ajaxForm()选项中,设置“error”回调以处理错误状态 以下是Rails控制器的外观: def update

我使用Jquery表单插件通过ajax提交表单。我已经在模型的服务器端设置了验证。现在,当验证失败时,我希望使用ajax向用户显示相同的flash[:error]消息。如果验证成功,我可以在请求完成后显示flash[:notice]。如何显示flash[:error]?

我找到了这个


如果有人有更好的解决方案,请发布,我会接受。

从Rails应用程序返回HTML错误状态。在
.ajaxForm()
选项中,设置“error”回调以处理错误状态

以下是Rails控制器的外观:

def update
  @widget = Widget.find(params[:id])

  if @widget.update_attributes(params[:widget])
    respond_to do |format|
      format.js { head :ok }
    end
  else
    respond_to do |format|
      format.js { render :json => @widget.errors.full_messages.join(' '), :status => 400 }
    end
  end
end
下面是您的
.ajaxForm()
调用可能的样子(对于
.ajaxSubmit()
)也是如此):

$('form.ajax').ajaxForm({
成功:功能(数据){
/*对成功的回应*/
},
错误:函数(数据){
/*显示来自Rails应用程序的验证消息响应*/
$('form.ajax').prepend('

'+data.responseText+'

'); } });
您可以在中阅读有关
错误
回调的更多信息。
还有一个关于重构这些类型响应的好教程

$('form.ajax').ajaxForm({
  success: function(data) {
    /* response for success */
  },
  error: function(data) {
    /* Display validation message response from Rails app */
    $('form.ajax').prepend('<p class="errors">' + data.responseText + '</p>');
  }
});