Jquery 如何在弹出窗口中获取Desive错误消息
我正在使用jquery将designe的注册表单作为弹出窗口加载。问题是我无法在弹出窗口中加载设备的错误消息 如果我点击空的注册表单,我会被重定向到另一个页面,在那里我会看到错误消息 我已经浏览了Desive的github帖子,但没有找到我正在寻找的解决方案 我在application helper中创建了一个方法,以便表单helper中的Jquery 如何在弹出窗口中获取Desive错误消息,jquery,ruby-on-rails-3,device,Jquery,Ruby On Rails 3,Device,我正在使用jquery将designe的注册表单作为弹出窗口加载。问题是我无法在弹出窗口中加载设备的错误消息 如果我点击空的注册表单,我会被重定向到另一个页面,在那里我会看到错误消息 我已经浏览了Desive的github帖子,但没有找到我正在寻找的解决方案 我在application helper中创建了一个方法,以便表单helper中的代码能够正常工作 应用程序帮助程序代码如下:- def devise_error_messages! resource.errors.full_mes
代码能够正常工作
应用程序帮助程序代码如下:-
def devise_error_messages!
resource.errors.full_messages.map { |msg| content_tag(:li, msg) }.join
end
我知道这有点不对劲,但我不知道是什么原因。有人能帮我解决这个问题吗
更新
我认为,由于当我点击提交按钮时,弹出框中没有显示错误,因此注册控制器的创建操作可能存在问题。将尝试覆盖设计的注册控制器的默认创建操作。让我们看看它是否适用于这些更改
更新2
进行了我在上面的更新中提到的更改,尽管它不起作用,但它让人感觉到我非常接近解决方案:)
仍在等待帮助
谢谢,您是否正在覆盖RegistrationController的创建操作?如果resource.save失败,这应该可以解决问题
render :json => { :success => false, :data => resource.errors.full_messages }
这应该只将错误消息传递回jquery脚本。例如:
$('#sign_up_form').submit(function() {
$.post(this.action, function(response) {
if (response.success) {
//... do a redirect or something cuz we're now registered
} else {
// do something with your errors
$('#sign_up_form').prepend(response.data);
}
}, 'json');
});