翻译自定义错误消息

时间:2012-10-18 12:54:20

标签: error-handling internationalization ruby-on-rails-3.2 simple-form

我有一个表单(使用simple_form),我想实现对已翻译错误消息的支持。除了错误消息外,我的所有翻译都会出现。

我的客户模式是:

class Customer < ActiveRecord::Base
  attr_accessible :name, :phone, :email, :contact_method

  validates_presence_of :phone, :email, :contact_method, :message => I18n.t(:required)
end

我的fr.yml文件

fr:
  name: 'Nom'
  phone: 'Téléphone'
  email: 'Courriel'
  contact_method: 'Méthode de contact'
  required: 'Requis'

我的表格如下:

= simple_form_for @customer do |f|
  = f.input :name, label: t(:name)
  = f.input :phone, label: t(:phone)
  = f.input :email, label: t(:email)

我有什么遗失的吗?

1 个答案:

答案 0 :(得分:3)

首先,您应该Symbol使用validates_presence_of。不要手动使用I18n进行翻译:

validates_presence_of :phone, :email, :contact_method, :message => :required

其次,将错误消息的翻译添加到您的语言环境文件中,如下所示:

activerecord:
  errors:
    models:
      customer:
        required: 'Requis'