更改rails中包含错误的返回字段的名称

时间:2009-12-12 13:07:31

标签: ruby-on-rails validation

我有一个这样的表格:

<fieldset>
    <legend>
        اضافه کردن یک قالب
    </legend>
    <%= error_messages_for 'theme' , :header_message => "موارد زیر دارای اشکال می باشند، لطفا دوباره بررسی نمایید :" , :message => nil %>
    <ol>
        <% form_for @theme do |t| %>
        <li>
            <%= label :theme , :نام %>
            <%= t.text_field :name %>
        </li>
        <li>
            <%= label :theme , :نام_انگلیسی %>
            <%= t.text_field :en_name %>
        </li>
        <li>
            <%= label :theme , :قیمت %>
            <%= t.text_field :price %>
        </li>
        <li>
            <%= label :theme , :قیمت_ویژه %>
            <%= t.text_field :unique_price %>
        </li>
        <li>
            <%= label :theme , :توضیحات %>
            <%= t.text_area :description %>
        </li>
        <li>
            <%= submit_tag "اضافه کردن قالب" %>
        </li>
        <% end %>
    </ol>
</fieldset>

在我的模型中,我有一个验证:

  validates_presence_of :name , :en_name , :price , :unique_price , :description , :message => "نباید خالی باشد"

问题是我想在验证错误消息中有一个unicode(波斯语)名称,目前它返回类似这样的错误:

موارد زیر دارای اشکال می باشند، لطفا دوباره بررسی نمایید :

    * Name نباید خالی باشد

我想要做的就是以某种方式将错误信息中的“姓名”改为波斯语,我该怎么办?

2 个答案:

答案 0 :(得分:3)

从2.3开始,正确的方式就是使用i18n。请参阅:http://guides.rubyonrails.org/i18n.html第5.2.1节。

答案 1 :(得分:1)

您需要查看humanized attributes

模型中的

(每个模型)

  HUMANIZED_ATTRIBUTES = {
    :name => "نا"
  }

  def self.human_attribute_name(attr)
    HUMANIZED_ATTRIBUTES[attr.to_sym] || super
  end