概要
会員登録機能実装時に「undefined method `session_path'..」エラーが発生。
機能実装の流れも含めて記載します。
会員登録機能 実装手順
1.Gemfileに「devise」を追加して、「bundle install」コマンドを実施。
gem 'devise' #Gemfileに記載
2.Deviseをインストール
rails generate devise:install
3.Userモデルを生成
rails generate devise User
4.マイグレーションを実行
rails db:migrate
5.会員登録用のビューファイルなどを作成
rails generate devise:views users
6.app/views/devise/registrations/new.html.erbファイルを編集。
下記のように英語表記を日本語に修正とnameフォーム追加など実施。
<div>
<%= f.label :名前 %>
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :email %><br /> # :emailをメールアドレスなど
<%= f.email_field :email, autofocus: true, autocomplete: "email" %>
</div>
7.app/controllers/application_controller.rbにユーザー認証を追加
before_action :authenticate_user!
エラー発生経由と解決概要
users/sign_in ページにアクセスした際「undefined method `session_path' for an instance of」エラー発生。
下記記事を見つけ、「docker compose down」「docker compose up -d」コマンドを実施。Railsサーバの再起動が必要だった模様です。
・参照記事
https://stackoverflow.com/questions/24420942/undefined-method-session-path
まとめ
エラーの対処方法と今回実装しようとした会員登録機能の手順も同等の機能実装の際に役に立つのではと思い、一緒にまとめました。