deviseログイン変更時に エラー ruby on rails
deviseを使ったログインに変更したらこのようなエラーが出ました。
NoMethodError in UsersController#login
undefined method `authenticate' for #User:0x000055add69f9e88 Did you mean? authenticatable_salt
has_secure_passwordからencrypt_passwordに変更しました。
いろいろと調べて見ましたが直りませんでした。
解決方法が分からないので教えて頂きたいです。
migrate/add_devise_to_users.rb
class AddDeviseToUsers < ActiveRecord::Migration[6.0]
def self.up
change_table :users do |t|
## Database authenticatable
t.string :encrypted_password, null: false, default: ""
## Recoverable
t.string :reset_password_token
t.datetime :reset_password_sent_at
## Rememberable
t.datetime :remember_created_at
end
user.controller.rb
def login
@user = User.find_by(email: params[:email])
if @user && @user.authenticate(params[:password]) ←ここがエラーになりました。
session[:user_id] = @user.id
flash[:notice] = "ログインしました"
redirect_to("/posts/index")
else
@error_message = "メールアドレスまたはパスワードが間違っています"
@email = params[:email]
@password = params[:password]
render("users/login_form")
end
end
0