前提・実現したいこと
初めまして、初心者なのですが、現在登録画面にバリデーションをモデルに付与し
日本語によるエラーを表示させるべく実装しています。
多くのサイトから、userモデルにおける、実装はなんとかうまくいき
続いて、userに関する別の情報を登録するためのstaffmemberというモデルを追加し
これについても同様に、エラーの情報を日本語で表示させるためにja.ymlに
コードを追記したのですが、反映しない状況です。
インデントについても、注意し記載したのですが、そもそもの構文が
間違っているのかわからず悩んでおります。ご教授お願いいたします。
環境:Ruby on Rails 6.0
発生している問題・エラーメッセージ
下記のソースコードにおいて、user モデルに関してバリデーションエラーは正常に表示してくれますが
**staffmemberモデルの code に関するバリデーションチェックはかかっているものの下記の翻訳エラー
が発生してしまっております。
**
Code translation missing: ja.activerecord.errors.models.staffmember.attributes.code.blank
該当のソースコード
Rails
1ja: 2 activerecord: 3 errors: 4 models: 5 user: 6 attributes: 7 name: 8 blank: :空白になっています。 9 email: 10 blank: :空白になっています。 11 invalid: :正しいメールアドレスを登録ください。 12 password: 13 blank: :空白になっています。 14 too_short: :6文字以上で入力してください。 15 password_confirmation: 16 confirmation: :パスワードが一致しません。 17 18 staffmember: 19 attributes: 20 code: 21 blank: : 空白登録できません。
試したこと
locale.rbの記述
Rails.application.config.i18n.default_locale = :ja
補足情報(FW/ツールのバージョンなど)
VS-CODEにてローカル環境にて開発中です。
追加情報
モデル
class Staffmember < ApplicationRecord before_save{ self.code = code.downcase} validates :code, presence: true, uniqueness: true validates :jpn_name, presence: true validates :password, presence: true, length: {minimum: 6} validates :kana_name, presence: true validates :birthday, presence: true has_secure_password end
コントローラー
class
1 def index 2 end 3 4 def new 5 @staff = Staffmember.new 6 end 7 8 def create 9 @staff = Staffmember.new(staffmember_params) 10 if @staff.save 11 flash[:success] = "登録されました。" 12 redirect_to @staff 13 else 14 render 'new' 15 end 16 end 17 18 def show 19 @staff = Staffmember.find(params[:id]) 20 end 21 22 private 23 def staffmember_params 24 params.require(:staffmember).permit(:code, :password, :password_confirmation, :jpn_name, :kana_name, :eng_name, 25 :birthday, :sex ) 26 end 27 28end 29
ビュー
<div class="row"> <%= form_with(model: @staff, local: true) do |f| %> <%= render "shared/error_messages", object: f.object %> <section> <h2>基本情報</h2> <div class="form-group col-md-2"> <%= f.label :code, "職員番号" %> <%= f.number_field :code %> </div> <div class="form-group col-md-2"> <%= f.label :password %> <%= f.password_field :password %> </div> <div class="form-group col-md-2"> <%= f.label :password_confirmation, "Password再入力" %> <%= f.password_field :password_confirmation %> </div> <div class="form-group col-md-3"> <%= f.label :jpn_name, "氏 名" %> <%= f.text_field :jpn_name %> </div> <div class="form-group col-md-3"> <%= f.label :kana_name, "カナ氏名" %> <%= f.text_field :kana_name %> </div> <div class="form-group col-md-3"> <%= f.label :eng_name, "英字氏名" %> <%= f.text_field :eng_name %> </div> <div class="form-group col-md-2"> <%= f.label :birthday, "生年月日" %> <%= f.date_field :birthday %> </div> <div class="form-group col-md-2"> <%= f.label :sex, "性別" %> <%= f.select :sex, [['男性', 1], ['女性', 2]],{ selected: 2} %> </div> </section> <section> <h2>部署情報</h2> </section> <%= f.submit "登 録", class: "btn btn-primary" %> <% end %> </div>
#改めてインデント揃えました。
ja:
1 activerecord: 2 errors: 3 models: 4 user: 5 attributes: 6 name: 7 blank: :空白になっています。 8 email: 9 blank: :空白になっています。 10 invalid: :正しいメールアドレスを登録ください。 11 password: 12 blank: :空白になっています。 13 too_short: :6文字以上で入力してください。 14 password_confirmation: 15 confirmation: :パスワードが一致しません。 16 staffmember: 17 attributes: 18 code: 19 blank: : 空白登録できません。 20 21 attributes: 22 user: 23 name: 名前 24 email: メールアドレス 25 password_confirmation: Password 再入力 26 27コード
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/26 05:07