Ruby on rails Rails AJAX错误消息

Ruby on rails Rails AJAX错误消息,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我有一个表单正在通过jQuery AJAX提交 该模型有一个validates\u presence\u字段,如果该字段为空,rails将返回XHR:role\u id未定义。 我通过以下操作学会了如何定制: validates_presence_of(:role_id, :message=> "Select a role to continue.") 但这也回吐了一句:角色选择一个角色继续。所以我发现这可能会有所帮助,IDK: <% errors.each do |attrib

我有一个表单正在通过jQuery AJAX提交

该模型有一个validates\u presence\u字段,如果该字段为空,rails将返回
XHR:role\u id未定义。

我通过以下操作学会了如何定制:

 validates_presence_of(:role_id, :message=> "Select a role to continue.")
但这也回吐了一句:角色选择一个角色继续。所以我发现这可能会有所帮助,IDK:

<% errors.each do |attribute, message| -%>
    <% if message.is_a?(String)%>
        <li><%= message %></li>
    <% end %>
<% end -%>

  • 我的问题是,如何在Rails 3中使用远程窗体处理这种类型的来回操作?我想用AJAX提交,然后用AJAX发回错误消息

    想法?插件


    再次感谢

    好吧。。。不是Rails在背后吐口水。这是你的控制器。因此,当您的模型验证失败时,您可以随意吐痰。您可能有一个create和一个update方法,每个方法都必须处理XHR。您自己决定如何与浏览器通信很重要

    有人可能会说,验证失败应该创建一个错误(4xx)响应,但这实际上是一个HTTP,而不是应用程序响应代码。在本例中,您的应用程序正确地处理了请求,因此需要返回一个200。所以Ajax错误处理程序对您没有多大用处——这是针对真正的页面未找到、服务器出错等错误

    相反,您的成功处理程序需要检查flash散列,以发现是否存在错误,如果存在,则将错误文本放在页面上的某个相关位置,供您的用户使用

    一个看起来很有前途的插件是Stickies(http://github.com/JokerCatz/stickies). 该项目已经有一段时间没有任何活动了,但是如果它不能与您的Rails版本一起工作,那么将其升级到当前的Rails级别应该不会太难