更新 IP 地址时输入无效

你们真幸运。由于成本较高,一旦 V2 预览版结束,我们就不得不切换回 SKU V1。

无论如何,这个问题似乎已经在上游通过 一个已合并的 PR 得到解决,并应从 rack 2.0 版本开始包含。但根据 这个问题,它仍然缺失于当前的发布版本中。

暂时我在 CI/CD 过程中应用补丁来处理这个问题。这不算完美,但在我们于未来的 rack/ Discourse 发布中看到修复之前,它能起作用。

如果有人感兴趣,这是你需要在 lib/auth/default_current_user_provider.rb 中修改的部分,以消除多余的端口:

if current_user && should_update_last_seen?
  u = current_user
  ip_port_split = request.ip.split(':')
  ip_only = ip_port_split.first
  Scheduler::Defer.later "Updating Last Seen" do
    u.update_last_seen!
    u.update_ip_address!(ip_only)
  end
end

我不知道是否应该将该快速修复替换为该文件或其他文件(email_controller.rb、006-mini_profiler.rb、request_tracker.rb)中任何出现 request.ip 的地方,但这对我们来说有效。
如前所述,在构建/CI 过程中应用补丁可以保持代码库的整洁和可更新性。
任何“更优雅”的解决方案都欢迎。