前提・実現したいこと
今twitterのようなサービスを作ってるのですが、その中でログインしてないユーザーに対して制限をするauthenticate_userをapplication_controller.rbで定義し、
before_actionでposts_controller.rbとusers_controller.rbに適用したところエラーが出ました。
そこでいろいろ調べたところ、has_sercure_passwordを設定すればうまくいくということで、post.rbとuser.rbに適用したのですが、そしたら、また別のエラーが出ました。
その後も、数時間模索しましたが、解決策がわからなかったので、誰かご教授してくれると幸いです。
###エラーメッセージ has_secure_passwordを設定する前のエラー文
undefined method `authenticate_user' for #<PostsController:0x0000000008364ae0> Did you mean? authenticate_uer
該当のソースコード
application_controller.rb
class ApplicationController < ActionController::Base before_action :set_current_user def set_current_user @current_user = User.find_by(id: session[:user_id]) end def authenticate_uer if @current_user == nill flash[:nitice] = "ログインが必要です" redirect_to("/login") end end def forbid_login_user if @current_user flash[:notice] = "すでにログインしています" redirect_to("/posts/index") end end end
post.rb
class Post < ApplicationRecord validates :content, {presence: true, length: {maximum: 140}} has_secure_password end
user.rb
class User < ApplicationRecord validates :name, {presence: true} validates :email, {presence: true, uniqueness: true} validates :password, {presence: true} has_secure_password end
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
windows10