前提・実現したいこと
Railsで作っているサイトにdeviseでログイン機能の実装をしています。
先ほどまできちんと動いていたのですが、一度ルーティングを少しいじったら元に戻してもエラーが出てしまうようになりました。
発生している問題・エラーメッセージ
NoMethodError in Devise::Registrations#new app/views/devise/registrations/new.html.haml where line #3 raised: undefined method `registration_path' for #<#<Class:0x00007f9dc4d487d0>:0x00007f9dc4d42880>
該当のソースコード
haml
1.devise-content.container.border.border-danger.my-5.py-4.text-center.w-50.text-secondary 2 %h2 新規登録 3 = form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| 4 = render "devise/shared/error_messages", resource: resource 5 .field.py-2 6 = f.label :"アカウント名"
ruby
1Rails.application.routes.draw do 2 devise_for :users 3 resources :users, only: [:index, :show] 4 resources :reviews, only: :show 5 resources :products, only: [:index, :show] do 6 resources :reviews, except: :show 7 end 8 root 'reviews#index' 9end 10
試したこと
サーバーの再起動→変化なし。
devise導入時のコマンドに誤りがなかったか確認
補足情報(FW/ツールのバージョンなど)
もともと、デバイス用のアクションとは他にマイページへの推移がしたくて、users#showを作ったのですが
user_path(current_user.id)だとルーティングエラーになってしまい、
deviseが何か悪さしているのかな〜と思ってdevise_for :usersを一旦コメントアウト→rake routesでルーティングを確認し、ブラウザで一度操作しました。
その後、devise_for :usersのコメントアウトを元に戻しましたが、今度はdeviseによるログイン機能がおかしくなってしまいました。
エラー該当箇所は触っていません。
先ほどまでなんどもログイン、ログアウト、サインアップ機能が使えていたので、なぜできなくなったのか分かりません。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。