環境
Windows
Rails 6.0.3.4
Ruby 2.6.6
Rails環境はローカルに構築しています。
状況
ユーザー新規登録フォームで誤った情報をpostした際、不備があった項目のみを赤く表示したいと考えています。
画面上部にまとめてエラーメッセージを表示する方法はRailsチュートリアルで出てきたため既に知っていますが、この機能を実装するには不備があった項目のinput要素のclassを動的に切り替えてcssを当てなければならないかと思いますので、その方法を教えていただきたいです。
考えてみたこと
モデル:User、コントローラー:Users
user_controller.rbのcreateアクションにて、@user.saveが失敗した際に@user.errors.messages.keysで、不備があったカラムがシンボルの配列で取得できることは確認しました。ex) [:email, :password]
これを@errorsなどのインスタンス変数に格納してviewにて分岐をしてclassをつけようか…といったことを考えましたが、どのように要素を指定するか思いつきませんでした。
また例えば
erb
1<div class="alert-#{@foo.bar}"></div>
など、class名で静的な文字列と式展開を組み合わせられることは知っています。
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/12/30 03:40 編集