【问题标题】:Rails AJAX Error messageRails AJAX 错误信息
【发布时间】:2010-11-02 03:57:13
【问题描述】:

我有一个通过 jQuery AJAX 提交的表单...

模型有一个字段的 validates_presence_of,如果该字段为空,rails 会吐回XHR :role_idNot Defined.

我学会了如何定制它:

 validates_presence_of(:role_id, :message=> "Select a role to continue.")

但这会吐回 :role_IDSelecta 角色以继续。所以我发现这可能会有所帮助,IDK:

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

我的问题是如何在 Rails 3 中使用远程表单来处理这种类型的来回?我想用 AJAX 提交并以某种方式用 AJAX 发回错误消息?

想法?插件?

再次感谢

【问题讨论】:

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


    【解决方案1】:

    嗯...不是 Rails 做出了反击。这是你的控制器。所以当你的模型验证失败时,你可以吐出任何你喜欢的东西。您可能有一个 create 和一个 update 方法,并且每个都必须处理 XHR。您自己决定如何与浏览器进行通信非常重要。

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-16
      • 2015-03-29
      • 2016-10-21
      • 1970-01-01
      • 2015-10-24
      • 2011-01-07
      • 2014-11-18
      • 1970-01-01
      相关资源
      最近更新 更多