ruby-on-rails - Redmine“generate_autologin_token”为“id”变量获得了 NULL 值。“id”在哪里定义?
问题描述
我有一个类似于https://www.redmine.org/boards/4/topics/59980的问题,在我的 redmine 实例上使用 open_id 插件进行身份验证。
我回溯到redmine\app\models\user.rb (app/models/user.rb:445: in `generate_autologin_token')
# Generates a new autologin token and returns its value
def generate_autologin_token
token = Token.create!(:user_id => id, :action => 'autologin')
token.value
end
因此,问题是“id”在极少数情况下应该是用户 ID 号时为 NULL。我在 RoR 方面缺乏经验,未能找到在 user.rb 中定义此“id”变量的位置以进一步调试。
在 redmine 项目中哪里可以找到这个变量定义?此外,如果有人已经解决或知道解决类似问题,我将非常感谢调试建议或解决方案
解决方案
我不知道你在哪里定义了“id”变量,但如果你的方法“generate_autologin_token”在“用户”模型中,你可以使用 self.id 在实例中使用用户 ID。编辑:如果您在 before_save 之前调用“id”或不是用户的特定实例,它显然会为 NULL。
推荐阅读
- mongoose - 无法读取未定义的属性“模型”
- keras - 在 keras 自定义损失函数中的 input_tensor 上调用 K.eval()?
- c# - 位图高内存使用
- android - Android - 库的使用:本地 Jar 与在线链接
- operating-system - 页面大小在操作系统中存储在哪里?
- c++ - 无法将类型的非 const 左值引用绑定到类型的右值
- asp.net - 我所有的文本框都返回 null 我该怎么办?
- python - 如何在 Numpy 中删除子数组 IF 完全匹配 0,0,0
- swift - 符合具有通用约束的协议的弱属性
- python - 两两相似度