User 模型类里为什么要加一个 password 的虚拟属性 在 railscasts-china.com 上看太檑老师 @poshboytl 的视频,在看第二章 user-authentication 时弄不明白一个问题,太檑老师在 User 模型类里写了一个 password 的虚拟属性,开始我在模仿老师的代码时总是出错,后来注意到这一点后给代码加上一个 password 的虚拟属性后,问题莫名其妙的没了,我记得我的代码中从没调用过 password 这个方法,问题出在哪里呢??
忘了打代码了,代码在这里
class User < ActiveRecord::Base
validates :login, :presence => true
def password
@password
end
def password=(pass)
return unless pass
@password = pass
generate_password(pass)
end
private
def generate_password
salt = Array.new(10){rand(1024).to_s(36)}.join
self.salt, self.hashed_password = salt, Digest::SHA256.hexdigest(pass+salt)
end
end