rails で再確認のパスワードフォームを作りたいです。
<コントローラー> ・ ・ ・ def create @user = User.new( password: params[:password], id: params[:id], repassword: params[:repassword] ) if @user.password == @user.repassword and @user.save redirect_to("/a/#{@user.id}") elsif @user.password != @user.repassword and @user.save flash[:notice] = "don't match password" render("new") else flash[:notice] = "please write email or password" render("new") end end ・ ・ ・
<ビュー> ・ ・ ・ <p>password</p> <input type="password" name="password" value="<%=@user.password%>"> <p>please check password.</p> <input type="password" name="repassword" value="<%=@user.repassword%>"> ・ ・ ・
と、データベースに「passwordカラム」と「repasswordカラム」を作って、コントローラで、この二つに送られた文字列が一緒ならちゃんとしたページに飛んで、違うときはdon't match passwordを表示させて"new"に飛ぶように作ったはずです。
しかし、実際にはどっちにも通らず、elseのplease write email or passwordが出てしまいます。
試しに
if @user.password == @user.repassword and @user.save
を
if @user.password == @user.repassword or @user.save
と入力すると理想のページ("/a/#{@user.id}")に飛びます。
おそらくは書き方が間違っているのかと思ったのですが、一体どこを間違っているのかわかりません。
どうか知恵をお貸しください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。