首页 > 解决方案 > 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 项目中哪里可以找到这个变量定义?此外,如果有人已经解决或知道解决类似问题,我将非常感谢调试建议或解决方案

标签: ruby-on-railsrubyredmine

解决方案


我不知道你在哪里定义了“id”变量,但如果你的方法“generate_autologin_token”在“用户”模型中,你可以使用 self.id 在实例中使用用户 ID。编辑:如果您在 before_save 之前调用“id”或不是用户的特定实例,它显然会为 NULL。


推荐阅读