Ruby on Railsでの、ウィザード画面によるパスワードの受け渡しについての質問です
###発生事項
create_companiesを押して次の画面に移動しようとしていますが、下記エラーが発生してしまいます。
”undefined method `[]' for nil:NilClass”
パスワードが空ですよと言われていると理解をしています
コード中にある、def create_companiesの二行したにある部分をbinding.pryで止めると
"password"=>"cccccc3"
と、前のページよりパスワードは遷移していることは確認できました
遷移したパスワードを再度取り出して、再び下記の記述しているように付与する方法かと思っているのですが、そのための具体的な方法をご教授していただければ幸いです
###コード
ruby
1def create 2 @user = User.new(sign_up_params) 3 unless @user.valid? 4 render :new and return 5 end 6 session['devise.regist_data'] = { user: @user.attributes } 7 session['devise.regist_data'][:user]['password'] = params[:user][:password] 8 @company = @user.build_company 9 render :new_companies 10 end 11 12 def create_companies 13 @user = User.new(session['devise.regist_data']['user']) 14 binding.pry 15 @company = Company.new(company_params) 16 unless @company.valid? 17 render :new_companies and return 18 end 19 session['devise.regist_data'] = { user: @user.attributes , company: @company.attributes } 20 session['devise.regist_data'][:company][:user]['password'] = params[:company][:user][:password] 21 @company_detail = @user.build_company_detail 22 render :new_company_details 23 end
回答1件
あなたの回答
tips
プレビュー