これはしばらく私を悩ませています。この問題はすべてのモデルで発生しますが、例としてクイズの1つを使用します。errors.full_messages:属性名が2回表示される
クイズには、次の検証があります。
validates_presence_of :size, :style
私は国際化を使用しています、と私は私の翻訳ファイルに次のように設定しています(これらは単に標準エラーメッセージですが、私はそれらを含めました私が検証に失敗する新しいクイズを作る場合は、見て:私は、任意の特定のモデルのためにそれらを上書きしたい場合には、構造を簡単に確認することができますように、私のen.yml)
activerecord:
errors:
messages:
inclusion: "{{attribute}} is not included in the list"
invalid: "{{attribute}} is invalid"
empty: "{{attribute}} can't be empty"
blank: "{{attribute}} can't be blank"
record_invalid: "Validation failed: {{errors}}"
は、問題はこれですquiz.errors.full_messagesで、各エラーメッセージには属性があり、フルメッセージE:メッセージがある理由
>> quiz = Quiz.create
=> <unsaved quiz object>
>> quiz.errors.full_messages
=> ["Size Size can't be blank", "Style Style can't be blank"]
私は、任意のアイデア誰も、例えば、"Size Size can't be blank"
なく"Size can't be blank"
を理解していませんか?
あなたが検証メッセージのそれぞれに '' {{属性}}を追加する必要がある理由、特定の理由がある:?あなたがすべて正しくは次の場所にあり は、あなたのRailsのバージョンから
en.yml
を使用し得ることを確認するには 通常、「リストには含まれていません」などのエラーメッセージのみが含まれます。属性はロケールファイルの 'activerecord.errors.full_messages.format'に基づいて自動的に追加されます。デフォルトは'%{attribute}%{message} '' ' – sikachuHi Sikachuです。これがベンダーの仕組みにあります。そのファイルの内容をen.ymlファイル(コメントアウト)にコピーした後、コメントを外して必要に応じて修正します。 –