【发布时间】:2012-10-10 03:33:44
【问题描述】:
在 Michael Hartl 教程的第 8 章中,我们设置了登录页面并在数据库中创建了一个新列来保存 base 64 字符串。在本教程中,它被称为 remember_token。在 user.rb 中:
private
def create_remember_token
self.remember_token = SecureRandom.urlsafe_base64
end
self 有一个名为 remember_token 的属性?这是已经内置的还是在其他地方创建的?也许我只是不太了解这一点。
他写道:
因为 Active Record 合成属性的方式基于 数据库列,没有 self 分配将创建一个本地 名为 remember_token 的变量,这根本不是我们想要的。使用 self 确保分配设置用户的 remember_token 以便它 将与其他属性一起写入数据库 用户已保存。
我很困惑,用户是如何获得记忆令牌的?它如何知道将其写入该特定列中的数据库?
在 user.rb 中有以下代码:
attr_accessible :name, :email, :password, :password_confirmation
那里没有关于 remember_token 的内容。它怎么知道在 User.save 中包含这个?
【问题讨论】:
标签: attributes token railstutorial.org