モデル(ユーザー)に次の検証があります。
validates :first_name,:length => {:minimum => 2,:maximum => 50},:format => { :with => /[a-zA-Z]+/ }
ymlロケールファイルに次のものがあります。
attributes:
first_name:
too_short: "First name is too short"
too_long: "First name is too long"
invalid: "First name is not valid"
ここで、を開始してrails console
、次のように記述します。
a = User.new
a.valid?
a.errors.full_messages
次のエラーが表示されます。
["First name First name is too short", "First name First name is not valid"]
ご覧のとおり、フィールドエラーの前に属性名も追加されています。これまでのところ、コードのどこでもを使用model.errors[:field]
しており、これによりymlファイルにある文字列が常に表示されますが、文字列を次のように変更したいと思います。
attributes:
first_name:
too_short: " is too short"
too_long: " is too long"
invalid: " is not valid"
そして、full_messagesバージョンを使用します。問題は、属性名を翻訳する方法がわからないことです。たとえば、名の代わりに名前を最初に付けたいとしましょう。どうすればいいですか?