発生している問題
rails6.0.2
概ねrailsチュートリアルに沿う形でアプリの作成をしているのですが、バリデーションエラーの表示が何故かemailのみ吹き出しで表示され、他の項目は表示されません。調べたところjavascript(jquery?)の機能のようなのですが、何処を触れば良いのかが分かりませんでした。チュートリアルviewに記述した通りに表示させたいです。
何かわかる方がいましたらご教授願いたいです。
試したこと
user.errors.full_messagesでエラーが正しく表示されることと、<%= render 'shared/error_messages' %>をコメントアウトしても発生することを確認しました。
該当のソースコード
/users_controller class UsersController < ApplicationController def show @user = User.find(params[:id]) end def new @user = User.new end def create @user = User.new(user_params) if @user.save flash[:success] = "登録成功" redirect_to @user else render 'new' end end private def user_params params.require(:user).permit(:name, :email, :password, :password_confirmation) end end
/users/new <h1>ユーザー登録</h1> <div class="form-group row"> <div class="col-md-6 col-md-offset-3"> <form> <%= form_with(model: @user, local: true) do |f| %> <%= render 'shared/error_messages' %> <div class="form-group"> <%= f.label :ニックネーム %> <%= f.text_field :name, class: "form-control", placeholder: "20文字以内" %> </div> <div class="form-group"> <%= f.label :メールアドレス %> <%= f.email_field :email, class: "form-control", placeholder: "メールアドレス" %> </div> <div class="form-group"> <%= f.label :パスワード %> <%= f.password_field :password, class: "form-control", placeholder: "6文字以上" %> </div> <div class="form-group"> <%= f.label :password_confirmation, "パスワード(再入力)" %> <%= f.password_field :password_confirmation, class: "form-control", placeholder: "6文字以上" %> </div> <div class="form-group text-center"> <%= f.submit "作成する", class: "btn btn-primary w-100" %> </div> <% end %> </form> </div> </div>
/_error_messages <% if @user.errors.any? %> <div class="alert alert-danger"> The form contains <%= pluralize(@user.errors.count, "error") %>. </div> <ul> <% @user.errors.full_messages.each do |msg| %> <li><%= msg %></li> <% end %> </ul> <% end %>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。