Closed fukasawamoe closed 3 months ago
アプリのstepの編集ページについて、ローカルではエラーメッセージが意図したものが表示されるのですが、デプロイ時には意図したもの以外のエラーメッセージが表示されてしまいます。
ローカル時
デプロイ時
数値の方のエラーメッセージは意図した通りのメッセージのみ表示されます。 ローカル時
解決のためにおこなったことについて ローカル時でも同じ問題が起きた際には、以下のように変更をおこない、対処ができました。 しかし、デプロイ後にもgit hubで同じように変更を確認した後でも意図しないエラーメッセージが出続けてしまっています。
# vendor/bundle/ruby/3.2.0/gems/rails-i18n-7.0.8/rails/locale/ja.yml not_a_number: は数値で入力してください ↓↓ not_a_number: ""
コンソールで確認も行いましたが原因が特定できませんでした。 ローカル
[17] pry(main)> @step = @user.steps.find_by(id:3) Step Load (0.9ms) SELECT "steps".* FROM "steps" WHERE "steps"."user_id" = $1 AND "steps"."id" = $2 LIMIT $3 [["user_id", 1], ["id", 3], ["LIMIT", 1]] => #<Step:0x00000001207fe240 id: 3, user_id: 1, goal_id: 1, action: "", times_set: nil, created_at: Wed, 10 Jul 2024 13:55:01.259075000 JST +09:00, updated_at: Tue, 16 Jul 2024 19:52:25.563078000 JST +09:00> [18] pry(main)> @step.action = "nya~~~" => "nya~~~" [19] pry(main)> @step.valid? Goal Load (0.4ms) SELECT "goals".* FROM "goals" WHERE "goals"."id" = $1 LIMIT $2 [["id", 1], ["LIMIT", 1]] => false [20] pry(main)> @step.errors.full_messages => ["", "回数を入力してください"]
デプロイ後のherokuコンソールにて
irb(main):010:0> @step.action => "nyan" irb(main):011:0> @step.valid? => false irb(main):012:0> @step.errors.full_messages => ["は数値で入力してください", "回数を入力してください"]
i18n側で制御しようとするよりもmessageオプション使って何も出さないようにする方がやりやすいかも...? https://railsguides.jp/active_record_validations.html#message
ありがとうございました!! messageオプションの使用を行い無事バリデーションメッセージの希望の表示を行うことができました!
アプリのstepの編集ページについて、ローカルではエラーメッセージが意図したものが表示されるのですが、デプロイ時には意図したもの以外のエラーメッセージが表示されてしまいます。
ローカル時
デプロイ時
数値の方のエラーメッセージは意図した通りのメッセージのみ表示されます。 ローカル時
デプロイ時
解決のためにおこなったことについて ローカル時でも同じ問題が起きた際には、以下のように変更をおこない、対処ができました。 しかし、デプロイ後にもgit hubで同じように変更を確認した後でも意図しないエラーメッセージが出続けてしまっています。
コンソールで確認も行いましたが原因が特定できませんでした。 ローカル
デプロイ後のherokuコンソールにて