前提・実現したいこと
Railsでグループチャットアプリを作成しています。
deviseのGEMを用いてユーザー管理をするのですが、ログインしていないとコンテンツは見れず
非ログイン状態では「Users/sign_in」を表示させたい。
発生している問題・エラーメッセージ
まずは「Users/sign_in」をみてみようと思いアクセスしましたが、
NoMethodError in Devise::SessionsController#new
となり、Extracted sourceは自分の書いたコードではない箇所を指定している(図1)。
Users/sign_inのページのエラー、その他ページのエラーで指摘箇所が違います(図2)。
「before_action :authenticate_user!」をコメントアウトするとその他ページ(見出しと文言だけの静的なページ)は表示されます(図2のエラーが解消)。
「Users/sign_in」は同じエラーのままです(図1)。
該当のソースコード
ruby
1#app/controller/application_controller.rb 2 3class ApplicationController < ActionController::Base 4 protect_from_forgery with: :exception 5 before_action :authenticate_user! 6 before_action :configure_permitted_parameters, if: :devise_controller? 7 8 protected 9 10 def configure_permitted_parameters 11 devise_parameter_sanitizer.permit(:sign_up, keys: [:name]) 12 end 13end 14
ruby
1#app/controller/users_controller.rb 2 3class UsersController < ApplicationController 4 5 def index 6 end 7 8 def edit 9 end 10 11 def update 12 if current_user.update(user_params) 13 redirect_to root_path 14 else 15 render :edit 16 end 17 end 18 19 private 20 def user_params 21 params.require(:user).permit(:name, :email) 22 end 23 24 25end 26 27
試したこと
・「app/controller/application_controller.rb」の「before_action :authenticate_user!」をコメントアウトして、表示させるページとエラーの出るページをみてみた。
・usersモデルは作成してマイグレート済み
・app/views/devise/sessions/new.html.hamlも設置済み
補足情報(FW/ツールのバージョンなど)
Gemfileにてバージョンは
gem 'rails', '~> 5.2.2', '>= 5.2.2.1'
となってます
みなさま、お力を貸していただければと存じます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。