質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

259閲覧

rails バリテーションのエラーメッセージを出すには

pyon_kiti_jp

総合スコア265

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2020/06/09 07:02

バリテーションでエラーメッセージの表示が上手くいきません。
新規登録の場合は、下記図のように画面にエラーメッセージが表示されます。
イメージ説明

しかし、既存のデータに対して修正して更新する場合は、下記図のようなエラー表示になってしまいます。
イメージ説明

コントローラの中はこのようにしております。何故、バリテーションのエラーメッセージの表示の仕方の差が出てくるのでしょうか。
既存のデータに対して修正する場合も、画面にエラーメッセージが表示されるようにしたいのですが、どのようにすればいいのか、教えて頂けませんでしょうか。

before_action :userkey_task, only: [:show, :edit, :update, :destroy] def new @userkey = Userkey.new end def create @userkey = Userkey.new(userkey_params) if @userkey.save redirect_to master_userkey_url(@userkey), notice: "ユーザーキーを登録しました。" else render :new end end def edit end def update if @userkey.update!(userkey_params) redirect_to master_userkeys_url, notice: "ユーザーキーを更新しました。" else render :edit end end private def userkey_task @userkey = Userkey.find(params[:id]) end def userkey_params params.require(:userkey).permit(:userkey_cd, :userkey_nm) end

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

コントローラの中はこのようにしております。

update!メソッドは、バリデーション失敗時に例外を起こします。結果をifで見て分岐するならupdateが適切です。

投稿2020/06/09 07:04

maisumakun

総合スコア146018

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pyon_kiti_jp

2020/06/09 07:14

それだけの話だったのですね。解決しました。ご回答ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問