##質問内容
deviseにおける新規登録についての質問です。
今回deviseのgemを使ってのuserの新規登録の際にviewを2つまたがってのユーザー登録になります。
viewの繊維としてはdevise/registration/new.html.erb→personal.html.erbになります。
画面の遷移はうまくいっているのですがnew.html.erbの内容を引き継いだままpersonal.html.erbに遷移する方法がわからず質問させて頂きました
routeはこうなっております
cancel_user_registration GET /users/cancel(.:format) users/registrations#cancel new_user_registration GET /users/sign_up(.:format) users/registrations#new edit_user_registration GET /users/edit(.:format) users/registrations#edit user_registration PATCH /users(.:format) users/registrations#update PUT /users(.:format) users/registrations#update DELETE /users(.:format) users/registrations#destroy POST /users(.:format) users/registrations#create users_personal POST /users/personal(.:format) users/registrations#personal
##試したこと
new.html.erbとpersonal.html.erbのform_forの記述など変なのかなと疑いましたが特に現状打開策が見つからずといった状況です
それぞれのform_forの部分を載せますので何かご意見を頂けますと幸いです
new.html.erb
<%= form_for( @user, url: {action: "personal", method: "post"}) do |f| %>
personal.html.erb
<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
なぜpersonalというページを用意し、複数のviewをまたぐ形を取る必要があるのか、newのフォームで一緒に入力するのではダメなのか、がよく分からないのでその辺りを追記していただきたいです。
今までその様に実装していたのですが今回試みで変えてみた方が下へのスクロールが減って同じ画面領域の中でできるんじゃないかとの考えが出て試しています。解決できないのであればmodelを分けるか同じnewで処理するかにしようと思っております。
なるほど。提示されている情報が少ないので回答はでき兼ねますが、送信されたparamsは複数のアクションを跨ぐことができないので、newで送信されたパラメータをpersonalのフォームで再送信する必要があると思います。その辺りを確認してみてはいかがでしょうか。
ありがとうございます、パラメーターが引き継がれてないことを疑ってみて何度か違った取り組みしているのですが上手くいってないのでmodel処理分ける方向になるのかなと思っております。また質問内容に関しての指摘ありがとうございます。