前提・実現したいこと
wizard形式で新規登録画面が作りたいです
tebleがuserとaddressの二つあります
registration.hamlで記述したものをuserのtableへsessionを使い保存
address.hamlで記述したものをaddressgのtableへsessionを使い保存
createでデータベースに保存をする
該当のソースコード
class SignupController < ApplicationController
def registration
@user = User.new
end
def address
session[:nickname] = user_params[:nickname]
session[:email] = user_params[:email]
session[:encrypted_password] = user_params[:encrypted_password]
session[:last_name] = user_params[:last_name]
session[:first_name] = user_params[:first_name]
session[:last_name_kana] = user_params[:last_name_kana]
session[:first_name_kana] = user_params[:first_name_kana]
session[:birth_year] = user_params[:birth_year]
session[:birth_month] = user_params[:birth_month]
session[:birth_day] = user_params[:birth_day]
@address = Address.new
end
def create
@user = User.new(
nickname: session[:nickname],
email: session[:email],
encrypted_password: session[:encrypted_password],
last_name: session[:last_name],
first_name: session[:first_name],
last_name_kana: session[:last_name_kana],
first_name_kana: session[:first_name_kana],
birth_year: session[:birth_year],
birth_month: session[:birth_month],
birth_day: session[:birth_day]
) @address = Address.new( post_code: address_params[:post_code], prefecture: address_params[:prefecture], town: address_params[:town], address_num: address_params[:address_num], apartment_info: address_params[:apartment_info] ) if @user.save && @address.save session[:id] = @user.id @address.merge(user_id: @user.id) redirect_to done_signup_index_path else render :registration end
end
def done
sign_in User.find(session[:id]) unless user_signed_in?
end
private
def user_params
params.require(:user).permit(
:nickname,
:email,
:encrypted_password,
:last_name,
:first_name,
:last_name_kana,
:first_name_kana,
:birth_year,
:birth_month,
:birth_day
)
end
def address_params
params.require(:address).permit(
:apartment_info,
:address_num,
:town,
:prefecture,
:post_code
)
end
end
rails
試したこと
binding.pryをif文の中で使用しましたがuser.idのみが取得できていないようです
ifの中身は何度も変更しているのですが@user.save でidが取得できていないので
記述の間違え、わかる方お願いします
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。