从en.yml获取错误消息时出错

时间:2015-08-07 12:30:06

标签: ruby-on-rails ruby-on-rails-4

我在模型中包含以下代码

class MyDetail < MyBase
    validates :number, format: { with: /\A(?:[\- \+\(\)0-9])+\z/,  message: I18n.t('error.validation.number')}
end

并在我的en.yml文件中给出此错误消息

en:
    error:    
        validation:
          number: "Invalid number oasis."

但它显示的信息如下:

  

电话无效号码绿洲。

但我希望将错误显示为无效数字绿洲。请指导如何解决这个问题。

2 个答案:

答案 0 :(得分:0)

rails中的翻译文件需要以语言代码开头。试试这个:

en:
  error:    
    validation:
      number: "Invalid number oasis."

注意:确保YML文件末尾有换行符,否则有时无法解析。

答案 1 :(得分:0)

你可以试试这个

en:
  activerecord:
    errors:
      models:
        my_detail:   #use my_base if you want it for all child
          attributes:
            number:  "Invalid number oasis."

这里你可以特别提到带有属性的模型名称来显示错误信息。

请阅读以下内容以了解它

http://guides.rubyonrails.org/i18n.html#translations-for-active-record-models