Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ## Error:
- undefined method `blank' for "03290aa3b91050b34eba644409c2769e828b15e5":String
- #{RAILS_ROOT}/app/models/user.rb:9:in `validate'
- #{RAILS_ROOT}/app/controllers/login_controller.rb:4:in `add_user'
- ----- user.rb --------
- class User < ActiveRecord::Base
- validates_presence_of :name
- validates_uniqueness_of :name
- attr_accessor :password_confirmation
- validates_confirmation_of :password
- def validate
- errors.add_to_base("Missing password") if hashed_password.blank;
- end
- def password
- @password
- end
- def password=(pwd)
- @password = pwd
- create_new_salt
- self.hashed_password = User.encrypted_password(self.password, self.salt)
- end
- def self.authenticate(name, password)
- user = self.find_by_name(name)
- if user
- expected_password = encrypted_password(password, user.salt)
- if user.hashed_password != expected_password
- user = nil
- end
- end
- user
- end
- private
- def self.encrypted_password(password, salt)
- string_to_hash = password "tribble" salt # 'tribble' makes it harder to guess
- Digest::SHA1.hexdigest(string_to_hash)
- end
- def create_new_salt
- self.salt = self.object_id.to_s rand.to_s
- end
- end
- ------------- add_user function -------------
- def add_user
- @user = User.new(params[:user])
- (4) if request.post? and @user.save
- flash.now[:notice] = "User #{@user.name} created"
- @user = User.new
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement