8

在我的 Rails 应用程序中,我在活动记录对象中使用验证助手,它们很棒。当出现问题时,我会在我的网页上看到标准的“3 个错误禁止保存此 foobar”以及个别问题。

有什么办法可以用我自己的方法覆盖这个默认消息吗?

4

3 回答 3

11

error_messages_for您用来显示错误的帮助程序接受一个:header_message允许您更改默认标题文本的选项。如:

error_messages_for 'model', :header_message => "You have some errors that prevented saving this model"

RubyOnRails API是您的朋友。

于 2008-09-24T14:45:13.297 回答
1

模型中的 "validates_" 方法通常都可以传递一个:message => "My Validation Message"参数。

我通常将错误包装成这样:

<% if(!@model.errors.empty?) %>
<div id="error_message">        
  <h2>
    <%= image_tag("error.png", :align => "top", :alt => "Error") -%>
    Oops, there was a problem editing your information.
  </h2>
  <%= short_error_messages_for(:model) %>
</div>
<% end %>  

然后在我的application_helper中迭代错误并生成一个简单的列表:

  def short_error_messages_for(object_name)
    object = instance_variable_get("@#{object_name}")
    if object && !object.errors.empty?
       content_tag("ul", object.errors.full_messages.collect { |msg| content_tag("li", msg) } )     
    else
        ""
    end
  end  

这段代码已经很老了,可能不是我现在写 Ruby 的方式,但你明白了要点。

于 2008-09-24T05:29:54.113 回答
0

您可以自己迭代 model.errors 哈希,而不是使用错误帮助器。

于 2008-09-24T05:12:03.797 回答