作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 jquery 将 devise 的注册表单加载为弹出窗口。问题是我无法在弹出窗口中加载设备的错误消息。
如果我点击空注册表单,我会被重定向到另一个页面,在该页面上会看到错误消息。
我浏览了 devise 的 github 帖子,但找不到我正在寻找的解决方案。
我在应用程序助手中创建了一个方法,以便 <%= devise_error_messages! %>
表单助手中的代码工作正常。
应用程序帮助程序代码如下:-
def devise_error_messages!
resource.errors.full_messages.map { |msg| content_tag(:li, msg) }.join
end
我知道这有问题,但不知道是什么问题。谁能帮我解决这个问题吗?
更新
我认为,由于当我点击提交按钮时弹出框中没有显示错误,因此注册 Controller 的创建操作可能存在问题。将尝试覆盖设备注册 Controller 的默认创建操作。让我们看看它是否适用于这些更改。
更新2
进行了我在上面的更新中提到的更改,尽管它不起作用,但它给人一种感觉,我非常接近解决方案:)
仍在等待帮助。
谢谢
最佳答案
您是否覆盖 RegistrationsController 的创建操作?如果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');
});
关于jquery - 如何在弹出窗口中获取设备错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7685553/
我是一名优秀的程序员,十分优秀!