我的用户有一个名为 :last_request_at, :null => false
的属性我需要将此属性设置为注册/创建的当前时间。但我不知道怎么做?
也许是注册表单中的隐藏字段?如果是,那会是什么样子?或者 Devise 如何将他在注册/创建时的可跟踪属性设置为当前时间?
编辑
我把它放在用户模型中:
before_save :set_last_request
def set_last_request
self.update_attribute(:last_request_at, Time.now)
end
但后来我得到:
stack level too deep
我会在您的控制器操作中设置该属性。堆栈级别太深的错误是因为update_attribute
调用在最后save
。你无限地呼唤set_last_request
.
我只会在您的控制器操作中调用@record.last_request_at = Time.now
,或者修改您的before_save钩子以仅执行self.last_request_at = Time.now
。
看看Trackable
模块:
跟踪登录计数、时间戳和 IP 地址。