Rails ウィザード形式でユーザー登録機能を実装してみた
railsを使って、フリマアプリのチーム開発をしています。
自分が担当したユーザー機能(Gem devise周り)での実装でウィザード形式で進めた時に
アソシエーションの組み方についての備忘録です。
やりたいこと
deviseをカスタマイズしてデータベース構造に沿って登録機能を実装する。
1ページ目:ユーザー情報(メアドや名前、生年月日とか)
2ページ目:住所関連(送付先とか)
ユーザー情報をsessionで保ったまま2ページ目(住所入力)へNextボタンで遷移させたい。かつ、住所入力に使用するインスタンス生成も同時に実施する。
テーブル設計、アソシエーション
今回は
userモデルにhas_many
addressesモデルにbelongs_to でテーブル設計をしました。
ハマったこと
参考にしたアプリだとアソシエーションはuserテーブルは「has_one :address」だったため
そのまま参照すると /user/registrations_controllerがうまく動かずcreateができない。
エラー発生。
解決
registrations_controllerのcreateメソッド内の @address を修正することで解決。
has_many のとき
@address = @user.addresses.build
has_one のとき
@address = @user.build_address
参考までに。
form_forを今回は使用しています。
form_withだと記載方法が違う点があると思うのでそこは調べてみてください。
参考になれば幸いです。
Author And Source
この問題について(Rails ウィザード形式でユーザー登録機能を実装してみた), 我々は、より多くの情報をここで見つけました https://qiita.com/mami3sansan/items/6e6e3f4d0f8f19b2f3cd著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .