Redmine "generate_autologin_token" 得到 "id" 变量的 NULL 值。 "id" 是在哪里定义的?

Redmine "generate_autologin_token" got NULL value for "id" variable. Where "id" is defined?

我有一个类似于 https://www.redmine.org/boards/4/topics/59980 的问题,在我的 redmine 实例上使用 open_id 插件进行身份验证。

我得到了 redmine\app\models\user.rb 的回溯(app/models/user.rb:445:在 `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”在极少数情况下为 NULL,而它应该是用户 ID 号。我对 RoR 缺乏经验,未能找到此“id”变量在 user.rb 中定义的位置以进一步调试。

在redmine项目中哪里可以找到这个变量定义?此外,如果有人已经解决或知道解决类似问题的热点,我将非常感谢调试建议或解决方案

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