新手问题 《web 敏捷开发》第二版,添加用户章节疑问

xiaoronglv · 2012年06月22日 · 最后由 Rei 回复于 2012年06月22日 · 2226 次阅读

没有编程经验,花了 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 扯上关系了。

你的问题是什么?

#1 楼 @ywencn 不好意思,不小心把草稿发布了。

因为书里生成 salt 用到算法是 self.object.id.to_s + rand.to_s,也可以不用这个算法。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号