新規登録でエラーメッセージを表示させたい
Ruby on rails でオリジナルアプリ(ブログ的な)を作成しているものです。
新規登録・ログインで正しく入力されなかった時にエラーメッセージを表示させようと思っているのですが、新規登録でエラーが表示されずに、新規登録ページに遷移するとエラーになってしまいました。
ActionView::MissingTemplate in Devise::Registrations#new
Showing /Users/yukahayuusatoru/projects/b_blog/app/views/devise/registrations/new.html.erb where line #7 raised: Missing partial shared/_error_messages with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :jbuilder]}. Searched in: * "/Users/yukahayuusatoru/projects/b_blog/app/views" * "/Users/yukahayuusatoru/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/devise-4.8.0/app/views" * "/Users/yukahayuusatoru/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/actiontext-6.0.4/app/views" * "/Users/yukahayuusatoru/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/actionmailbox-6.0.4/app/views" Extracted source (around line #7): </div> <%= render 'shared/error_messages', model: f.object %>←renderがおかしいと言われている? <div class="form-group"> <div class="form-text-wrap">
app/views/devise/registrations/new.html.erb
<%= form_with model: @user, url: user_registration_path, class: "registration-main", local: true do |f| %> <div class="form-wrap"> <div class="form-header"> <%= link_to 'Welcome to B-blog!', root_path, class:"form-header-text" %> </div> <%= render 'shared/error_messages', model: f.object %>←ここでエラーメッセージを新規登録画面で表示させる記述を行なっている <div class="form-group"> <div class="form-text-wrap"> <label class="form-text">User Name</label> </div> <%= f.text_field :name, class:"input-default", id: "user_name", placeholder:"blogさん" %> </div> <div class="form-group"> <div class="form-text-wrap"> <label class="form-text">Profile</label> </div> <%= f.text_area :profile, class:"input-default", id:"user_profile", placeholder:"Please introduce yourself" %> </div> <div class="form-group"> <div class="form-text-wrap"> <label class="form-text">Email</label> </div> <%= f.email_field :email, class:"input-default", id:"email",placeholder:"sample@sample.com", autofocus: true, autocomplete: "email" %> </div> <div class="form-group"> <div class="form-text-wrap"> <label class="form-text">Password</label> </div> <%= f.password_field :password, class:"input-default", id:"password", placeholder:"6 characters minimum", autocomplete: "new-password" %> </div> <div class="form-group"> <div class="form-text-wrap"> <label class="form-text">Confirm Password</label> </div> <%= f.password_field :password_confirmation, class:"input-default", id:"password-confirmation", placeholder:"Reenter password", autocomplete: "new-password" %> </div> <div class="actions"> <%= f.submit "Sign up", class:"register-btn" %> </div> </div> <% end %>
app/views/devise/shared/_error_messages/html.erb
<% if model.errors.any? %> <div class="error-alert"> <ul> <% model.errors.full_messages.each do |message| %> <li class='error-message'><%= message %></li> <% end %> </ul> </div> <% end %>
試したこと
ビューの_error_messages.html.erbにエラーを表示させる記述を行い、そして、そのエラーをどこに表示させるかで、新規登録の部分に「render」を使って表示させる記述を行いましたが、新規登録画面に遷移した時点でエラーになってしまいます。
補足情報(FW/ツールのバージョンなど)
新規登録機能はdeviseを導入して行なっています。
いくら模索してもわかりませんでした。どなたかこの問題を教えていただけると幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。