0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

undefined method `session_path' for an instance of

Last updated at Posted at 2024-12-27

概要

会員登録機能実装時に「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

まとめ

エラーの対処方法と今回実装しようとした会員登録機能の手順も同等の機能実装の際に役に立つのではと思い、一緒にまとめました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?