実現したいこと
Rails7の新規登録フォームでエラーメッセージを表示できるようにしたいです。
Rails5の時に勉強したやり方でやってみたのですが、できませんでした。
発生している問題・分からないこと
Rails5で勉強したやり方で試しましたが駄目でした。自分なりにググったりしましたが分かりませんでした。そもそも同じようなやり方でやっているのが出てこず、Device(?)というものを使った人向けなどが出てきました。
該当のソースコード
users_controller
1 def signup 2 @new_user = User.new() 3 end 4 5 def create 6 @new_user = User.new(name: params[:name], email: params[:email], password: params[:password]) 7 if @new_user.save && params[:cord] == "aaaaaaaaaaaaaa" 8 redirect_to("/top") 9 else 10 render("users/signup") 11 end 12 end
signup.html.erb
1<div class="signup"> 2 <div class="text"> 3 <h1>新規登録</h1> 4 </div> 5 <div class="error-messages"> 6 <% if @new_user.errors.any? %> 7 <ul> 8 <% @new_user.errors.full_messages.each do |message| %> 9 <li><%= message %></li> 10 <% end %> 11 </ul> 12 <% end %> 13 </div> 14 <div class="form"> 15 <%= form_tag("/signup") do %> 16 <p class="form-item-name">名前</p> 17 <input name="name" class="form-item"> 18 <p class="form-item-name">メール アドレス</p> 19 <input name="email" class="form-item"> 20 <p class="form-item-name">招待コード</p> 21 <input name="cord" class="form-item"> 22 <p class="form-item-name">パスワード</p> 23 <input name="password" class="form-item" type="password"> 24 25 <input type="submit" class="submit" value="新規登録"> 26 <% end %> 27 </div> 28</div>
user.rb
1class User < ApplicationRecord 2 validates :name, :email, :password, presence: true 3 validates :email, uniqueness: true 4 validates :email, format: { with: /\A[\w+-.]+@[a-z\d-]+(.[a-z\d-]+)*.[a-z]+\z/i} 5 validates :password, length: { minimum: 8 } 6end
試したこと・調べたこと
上記の詳細・結果
何も表示されませんでした。
cordのaaaaaaaaaaaaaaのところは、クローズな環境で使うため、参加してほしい人のみに登録ができるようにするためです。
補足
OS: Windows11
Ruby: 3.2.2
Rails: 7.0.8.1
0 コメント