Jquery AJAX:如何在服务器端validation失败时显示Flash错误消息?

我正在使用Jquery表单插件通过ajax提交表单。 我在我的模型中在服务器端设置了validation。 现在,当validation失败时,我想使用ajax向用户显示相同的flash [:error]消息。 如果validation成功,我可以在请求完成后显示闪存[: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({ success: function(data) { /* response for success */ }, error: function(data) { /* Display validation message response from Rails app */ $('form.ajax').prepend('

' + data.responseText + '

'); } });

您可以在jQuery API中阅读有关error回调的更多信息。
Paydrotalks还有一个很好的教程,可以重构这些类型的响应。

我找到了这个。

http://wiki.github.com/augustl/live-validations/

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