没有编程经验,花了 1 个月看完 ruby,最近在学习 rails。在做 depot 应用时遇到几个问题,请看过此书的同学们解答一下疑惑,非常感谢。
question 1 第 115 页
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
灰色区域的代码是什么意思呢?
question 2 第 115 页
书中的代码:
def create_new_salt self.salt = self.object.id.to_s + rand.to_s end
书本中的解释:代码里出现了一点新鲜东西,我们在代码里写 self.salt = ....,以强调用 salt = 方法——准确的说是“调用当前对象的 salt=方法”。
疑惑之处: ”生成 salt 值“不是类方法吗?应该与对象无关啊。文章中怎么与对象的 id 扯上关系了。