8

私の Rails アプリでは、アクティブなレコード オブジェクトで検証ヘルパーを使用していますが、それらは素晴らしいものです。問題が発生すると、Web ページに標準の「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"

RubyOnRailsAPIはあなたの友達です。

于 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 に答える