2017-08-21 11 views
0

ほとんどの場合、内蔵のバリデータのほとんどのRailsのデフォルトエラーメッセージがうまく動作することがわかりました。しかし、デフォルトの "{{attribute}} {{message}}" full_message形式では意味が分からないモデルもあります。私はfull_messagesの代わりにメッセージを表示できることを知っていますが、にメッセージを追加する必要があります。のビルトイン検証の場合、属性名が切り捨てられるためです。Railsのバリデーション、メッセージとメッセージのミキシング

デフォルトのfull_message形式を使用する方法がありますが、別の形式や特定の文字列を使用するための検証のためにfull_messageを直接オーバーライドする方法はありますか?既定の検証メッセージを、属性名で始まらないカスタムカスタムメッセージと混在させる自然な方法はありますか?あなたがRailsの4で設定/ロケール/ en.yml

+1

私はあなたがこの答えに記載されているものを実装したいと思うと思う:https://stackoverflow.com/a/2859275/3741320 –

+1

'add_to_base'メソッドは、 4.2で廃止され、最後にRails 5を使用しています。新しい構文は明らかに 'errors(:base、" message ")'です。言い換えれば、:baseを属性シンボルとして使用すると、Railsはあなたのメッセージに属性名を追加しません。 – xanderflood

答えて

0

errors.add_to_base("Something is terribly wrong!")ではなく、属性の、ベースモデルにエラーを追加し、この場合には同じものを返しfull_messageう属性名が前に付いていないmessageとします。

これはレール4.2で削除されました。これを行う新しい方法はerrors.add(:base, "Something is terribly wrong!")です。

+0

これは私の問題を解決するようではありません。私はそこに自分のメッセージを保存することができますが、I18nは自動的に属性名の前に自動的に付加されます。 – xanderflood

0

にカスタムメッセージを追加することができます

関連する問題