我使用
jquery加载设计的注册形式作为弹出窗口.问题是我无法在弹出窗口中加载设备的错误消息.
如果我单击空注册表单,我将被重定向到另一个页面,在那里我看到错误消息.
我已经完成了设计的github帖子,但找不到我要找的解决方案.
我在应用程序助手中创建了一个方法,以便<%= devise_error_messages! %GT;表单助手中的代码正常工作. 应用程序帮助程序代码如下: –
def devise_error_messages! resource.errors.full_messages.map { |msg| content_tag(:li,msg) }.join end
我知道这有什么不对,但无法弄清楚是什么.任何人都可以帮我解决这个问题.
UPDATE
我认为,由于当我点击提交按钮时弹出框中没有显示错误,因此注册控制器的创建操作可能存在问题.将尝试覆盖设计注册控制器的默认创建操作.让我们看看它是否适用于这些变化.
更新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'); });