3

翻訳を使用してアクティブモデルのインスタンスを作成しようとしています。(別のロケールで) 検証が機能する唯一の方法は、モデルで定義したすべてのフィールドのエラー メッセージを複製することです。したがって、このモデルの場合:

require 'active_model'
class User 
  include ActiveModel::Validations
  attr_accessor :first_name, :last_name, :email, :phone
  attr_accessor :address, :ssn, :university, :faculty
  attr_accessor :time_left, :gpa

  validates_presence_of :first_name, :last_name, :email, :phone
  validates_presence_of :address, :ssn, :university, :faculty
  validates_presence_of :time_left, :gpa
end

このyamlを書く必要があります:

en:
  activemodel:
    errors:
      models:
        user:
          attributes:
            phone:
              blank: 'cannot be empty' 
            first_name:
              blank: 'cannot be empty' 
            last_name:
              blank: 'cannot be empty' 
            email:
              blank: 'cannot be empty' 
            gpa:
              blank: 'cannot be empty' 
            address:
              blank: 'cannot be empty' 
            faculty:
              blank: 'cannot be empty' 
            university:
              blank: 'cannot be empty' 

また、activemodel がすべてのモデルを変換する一般的な方法を定義するだけでなく、すべてのモデルに対してこれを行う必要があるようです。私は試した:

en:
  activemodel:
    errors:
      models:
        attributes:
           blank: 'cannot be empty' 

しかし、それはうまくいきませんでした。私は明らかに何かが欠けています...ありがとう。

4

1 に答える 1

4

これを試して:

en:
  errors:
    messages:
      blank: "cannot be empty"
于 2010-10-17T15:16:20.267 に答える