1

ここにある投稿に従ってみました: Rails 3 Change Error Messageとここ: ActiveRecord validates... custom field name ですが、どちらも機能せず、データベースのフィールド名がまだ表示されています。

たとえば、次のようになります: 名前が短すぎます (最小は 1 文字です)

何か考え/これをトラブルシューティングするための好ましい方法はありますか? ありがとう。

これは、私のロケールで最初にリンクされた記事を使用したものです。

en:
  activerecord:
    models:
      account:        "Account"
    attributes:
      order:
        name:         "Business Name"

これが私のアカウントモデルの一部です:

validates_presence_of :name
validates_length_of :name, :minimum => 1, :maximum => 100

attr_accessible :name,  :admin_attributes, :image

アカウントの保存に失敗した後、私のビューからエラーを表示するコードは次のとおりです。

<% if @account.errors.any? %>
      <div class="errorExplanation">
        <h2>Errors encountered with your account information:</h2>
        <ul>
          <% @account.errors.full_messages.each do |m| %>
            <li><%= m %></li>
          <% end %>
        </ul>
      </div>
    <% end %> 
4

1 に答える 1

3

私はこれがかなり古いことを知っていますが、最終的にrails guides に目を向ける前にこの質問を見つけ、コードが機能するようになりました。

Account の属性名を変更したいようですが、Order を使用しています。

en:
  activerecord:
    models:
      account:        "Account"
    attributes:
      order: # Right here, this should be account
        name:         "Business Name"

models: account: "Account" も必要ないと思います。これは、モデルを別のものと呼びたいが、そうではない場合にレールに伝えるためのものです。そのため、削除できます。Attributes は、変更する対象のモデルを取得し、次に属性を取得します。

en:
  activerecord:
    attributes:
      account:
        name: "Business name"

属性がモデルに属しているように見えますが、実際には別の行にあると思います。これが役立つことを願っています。

于 2012-09-26T17:49:11.047 に答える