Rails:更改显示的错误列名称

时间:2012-06-20 16:40:52

标签: ruby-on-rails-3 validation error-handling

我已尝试按照此处找到的帖子进行操作:Rails 3 Change Error Message和此处:ActiveRecord validates... custom field name但这两个版本都没有对我有效,我的数据库字段名称仍会显示。

例如我得到:名字太短(最少1个字符)

有任何想法/是否有一种解决此问题的首选方法?感谢。

以下是我在en locale中使用第一个链接文章的内容:

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 %> 

1 个答案:

答案 0 :(得分:2)

我知道这已经很老了,但我终于在turning to the rails guides之前找到了这个问题,这让我的代码工作了。

看起来您想要更改Account的属性名称,但使用的是Order:

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

我不相信你需要模特:帐户:“帐户”。这是告诉rails如果你想给模型调用不同的东西,但你没有,所以你可以删除它。然后,属性将模型用于您想要更改的内容,然后是属性。

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

我认为可能会让你失望的是它几乎看起来属于模型属性,但它实际上是在另一条线上。希望这会有所帮助,因为它是最晚的!