実現したいこと
エラーメッセージをカスタマイズして、
セレクトボックスが未選択の場合は、
「〜を入力してください。」
じゃなく
「〜を選択して下さい」
にしたい。
発生している問題・エラーメッセージ
セレクトボックスが未選択だった場合に、カスタマイズしたメッセージだけ表示したいが、メッセージが余計に出力されてしまう。
メーカーを選択して下さい メーカーを入力してください。
該当のソースコード
model
ruby
1 2 validates :smart_lock_provider, presence: {message: "を選択して下さい"} 3 4 belongs_to :smart_lock_provider 5
view
haml
1= f.label :smart_lock_provider_id, 'メーカー' 2 = f.collection_select :smart_lock_provider_id, SmartLockProvider.all, :id, :name, {include_blank: "メーカーを選択してください"}, {id: "smart_lock_door__smart_lock_provider__select", name: "smart_lock_door[smart_lock_provider_id]"} 3 %p
ja.yml
ja: activerecord: models: smart_lock_door: ドアマスタ attributes: smart_lock_door: smart_lock_provider: メーカー
試したこと
2パターン試しました。
エラーメッセージをカスタムする方法
yml
1ja: 2 activerecord: 3 models: 4 smart_lock_door: ドアマスタ 5 attributes: 6 smart_lock_door: 7 smart_lock_provider: メーカー 8 errors: 9 models: 10 smart_lock_door: 11 attributes: 12 key: 13 blank: ほげほげ 14 smart_lock_provider: 15 blank: を選択して下さい
カスタムバリデーションを使う方法
model
ruby
1 def hoge 2 if smart_lock_provider.blank? 3 errors.add(:smart_lock_provider, 'を選択して下さい。') 4 end 5 end
いずれも変わりませんでした。
モデルのアソシエーション部分の影響でエラーメッセージが追加されてるのでは?と予想してますが回避策が分かりません。。。
belongs_to :smart_lock_provider
どうすれば余計なメッセージを出力させなくできるでしょうか?

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/09/08 13:25 編集
2023/09/08 13:26
2023/09/08 21:51