user.rb

来自「ruby on rails web敏捷开发之路第二版 源代码」· RB 代码 · 共 84 行

RB
84
字号
#---# Excerpted from "Agile Web Development with Rails, 2nd Ed."# We make no guarantees that this code is fit for any purpose. # Visit http://www.pragmaticprogrammer.com/titles/rails2 for more book information.#---# Schema as of June 12, 2006 15:45 (schema version 7)## Table name: users##  id              :integer(11)   not null, primary key#  name            :string(255)   #  hashed_password :string(255)   #  salt            :string(255)   #require 'digest/sha1'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 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      # 'password' is a virtual attribute    def password    @password  end    def password=(pwd)    @password = pwd    return if pwd.blank?    create_new_salt    self.hashed_password = User.encrypted_password(self.password, self.salt)  end      def after_destroy    if User.count.zero?      raise "Can't delete last user"    end  end           private      def create_new_salt    self.salt = self.object_id.to_s + rand.to_s  end        def self.encrypted_password(password, salt)    string_to_hash = password + "wibble" + salt    Digest::SHA1.hexdigest(string_to_hash)  end  end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?