ruby on rails - Why I am getting "uninitialized constant ApplicationController::SessionHelper" error? -
i don't have session model though, user , task ones.
app/helpers/sessions_helper.rb
module sessionshelper def sign_in(user) session[:user_id] = user.id self.current_user = user end def current_user=(user) @current_user = user end def current_user if session[:user_id] @current_user ||= user.find(session[:user_id]) end end def signed_in? !current_user.nil? end def sign_out session[:user_id] = nil self.current_user = nil end def current_user?(user) user == current_user end def deny_access redirect_to signin_path, notice: "please sign in access page." end end i included sessionhelper in application controller.
app/controllers/application_controller.rb
class applicationcontroller < actioncontroller::base protect_from_forgery with: :exception include sessionhelper end app/models/user.rb
class user < activerecord::base has_many :tasks attr_accessor :password email_regex = /\a[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i validates :first_name, presence: true, length: {maximum: 20} validates :last_name, presence: true, length: {maximum: 40} validates :email, presence: true, format: {with: email_regex}, uniqueness: {case_sensitive: false} validates :password, presence: true, confirmation: true, length: {within: 6..40} before_save :encrypt_password def has_password?(submitted_password) encrypted_password == encrypt(submitted_password) end def self.authenticate(email, submitted_password) user = find_by_email(email) return nil if user.nil? return user if user.has_password?(submitted_password) end private def encrypt_password self.salt = digest::sha2.hexdigest("#{time.now.utc}--#{password}") if self.new_r self.encrypted_password = encrypt(password) end def encrypt(pass) digest::sha2.hexdigest("#{self.salt}--#{pass}") end end what's problem can be?
there's typo, should sessionshelper , not sessionhelper
include sessionshelper hope helps!
Comments
Post a Comment