如何在弹出窗口中获取设计错误消息

时间:2011-10-07 09:44:36

标签: jquery ruby-on-rails-3 device

我正在使用jquery将设计的注册形式加载为弹出窗口。问题是我无法在弹出窗口中加载设备的错误消息。

如果我点击空注册表单,我会被重定向到另一个页面,在那里我看到错误消息。

我已经完成了设计的github帖子,但找不到我要找的解决方案。

我在应用程序助手中创建了一个方法,以便表单助手中的<%= devise_error_messages! %>代码正常工作。

应用程序帮助程序代码如下: -

 def devise_error_messages!
   resource.errors.full_messages.map { |msg| content_tag(:li, msg) }.join   
  end

我知道这有什么不对,但无法弄清楚是什么。任何人都可以帮我解决这个问题。

更新

我认为由于当我点击提交按钮时弹出框中没有显示错误,因此注册控制器的创建操作可能存在问题。将尝试覆盖设计注册控制器的默认创建操作。让我们看看它是否适用于这些变化。

更新2

我在上面的更新中提到的更改虽然不起作用,但它给触摸器提供了一个非常接近解决方案的方法:)

仍在等待一些帮助。

谢谢,

1 个答案:

答案 0 :(得分:3)

您是否重写了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'); 
});