質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

996閲覧

ウイザード形式フォームについて

Yoostar

総合スコア5

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2020/03/29 07:14

ウイザード形式のサインインについて

Ruby on rails
ユーザー機能を実装中に以下のメッセージ、ターミナルに表示され、saveが出来ません。
最後のcreateにsaveする箇所で、rollbackしてしまう。

ターミナルのメッセージ

(0.2ms) BEGIN
User Exists (0.3ms) SELECT 1 AS one FROM users WHERE users.email = BINARY 'b@ne.jp' LIMIT 1
(0.1ms) ROLLBACK

試したこと

カラムにencrypted_passworとなっていたのでencrypted_passwordとコントローラーに記載していたがpasswordに変更

コントローラー

  • signup.controller.rb

class

1 2 def index 3 end 4 5 def registration 6 @user = User.new 7 end 8 9 def sms_confirmation 10 session[:nickname] = user_params[:nickname] 11 session[:email] = user_params[:email] 12 session[:password] = user_params[:password] 13 session[:password_confirmation] = user_params[:password_confirmation] 14 session[:last_name] = user_params[:last_name] 15 session[:first_name] = user_params[:first_name] 16 session[:last_jp_name] = user_params[:last_jp_name] 17 session[:first_jp_name] = user_params[:first_jp_name] 18 session[:year_id] = user_params[:year_id] 19 session[:month_id] = user_params[:month_id] 20 session[:day_id] = user_params[:day_id] 21 @user = User.new 22 end 23 24 def address 25 session[:tel] = user_params[:tel] 26 @user = User.new 27 end 28 29 def create 30 session[:zip_code] = user_params[:zip_code] 31 session[:prefecture_id] = user_params[:prefecture_id] 32 session[:city] = user_params[:city] 33 session[:address] = user_params[:address] 34 session[:building] = user_params[:building] 35 session[:telephone] = user_params[:telephone] 36 @user = User.new( 37 nickname: session[:nickname], 38 email: session[:email], 39 password: session[:password], 40 password_confirmation: session[:password_confirmation], 41 last_name: session[:last_name], 42 first_name: session[:first_name], 43 last_jp_name: session[:last_jp_name], 44 first_jp_name: session[:first_jp_name], 45 year_id: session[:year_id], 46 month_id: session[:month_id], 47 day_id: session[:day_id], 48 tel: session[:tel], 49 zip_code: session[:zip_code], 50 prefecture_id: session[:prefecture_id], 51 city: session[:city], 52 address: session[:address], 53 building: session[:building], 54 telephone: session[:telephone] 55 ) 56 if @user.save 57 session[:id] = @user.id 58 redirect_to done_sign_up_index_path 59 else 60 render '/signup/registration' 61 end 62 end 63 64 def done 65 sign_in User.find(session[:id]) unless user_signed_in? 66 end 67 68 private 69 def user_params 70 params.require(:user).permit( 71 :nickname, 72 :email, 73 :password, 74 :password_confirmation, 75 :last_name, 76 :first_name, 77 :last_jp_name, 78 :first_jp_name, 79 :year_id, 80 :month_id, 81 :day_id, 82 :tel, 83 :zip_code, 84 :prefecture_id, 85 :city, 86 :address, 87 :building, 88 :telephone 89 ) 90 end 91end 92
address.htm.haml .signupMain__inner.signupMain__inner--registrationForm = form_for @user, url: signup_index_path, method: 'POST', class: 'signupMain__inner signupMain__inner--registrationForm' do |f|

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

メールアドレスは一意なもので、すでに b@ne.jp はデータベース上に存在するので2つめは保存できませんよというエラーですよね。正常な動作かと思いますが。

投稿2020/03/29 13:27

s.k

総合スコア423

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yoostar

2020/03/29 13:58

回答ありがとうございます! 重複により、ロールバックしていたんですね。 アドレスを違うのにして対応しました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問