1

フォームがあります。ラベルの多くは、モデルで指定されているものとは異なる名前を付ける必要があります。

attr_accessible :pin

シンプルフォームビュー:

= f.input :pin, :label => "Secret Code"

検証が失敗すると、エラーは、ビューで設定したラベル( "シークレットコード")ではなく、フィールドのモデル名( "ピン")を使用します。ユーザーは、どのフィールドにエラーがあるかについて混乱します。

現在、ラベルを変更するヘルパーがいます。

def fix_pin_errors(msg)
  msg.gsub!('Pin', 'Secret Code')
end

しかし、私がこれを多くの分野で行っていると、それは退屈になり、DRYではなくなります。

モデルが付けた名前とは異なるラベルにエラーを一致させるための最良の方法は何ですか?

4

1 に答える 1

3

I18nはあなたの友達です。このガイドをお読みください。これらをグローバルに変換して、必要な場所でピックアップできるようにする方法を説明します。

あなたの例では、次のようになります。

en.yml

en:
  activerecord:
    attributes:
      your_model_name:
        pin: 'Secret Code'
于 2013-01-28T18:59:50.147 に答える