Git 挂起以及管理员/版主账户出现“Oops”错误页面

让我回溯一下……我当时在那里做的,是尝试修改管理员偏好设置,希望抛出异常的代码不需要执行。

但我们真正想弄清楚的是,是否存在需要修复的代码 bug,或者数据库中是否存在本不该出现的异常数据。当然,两者兼有也是可能的。

回溯日志指向 app/serializers/current_user_serializer.rb 中的这段代码

  def has_new_upcoming_changes
    last_visited = object.custom_fields["last_visited_upcoming_changes_at"]
    return false if last_visited.blank? && object.created_at < Discourse.site_creation_date + 1.hour
    cutoff = last_visited.present? ? Time.zone.parse(last_visited) : object.created_at
    UpcomingChangeEvent.added.not_backfilled.where("created_at > ?", cutoff).exists?
  end

可以运行一个数据浏览器查询,以查看您的管理员账户中 last_visited_upcoming_changes_at 的值是什么。

SELECT 
    ucf.id AS custom_field_id, 
    ucf.user_id, 
    u.username,
    ucf.name, 
    ucf.value 
FROM user_custom_fields ucf
INNER JOIN users u ON u.id = ucf.user_id
WHERE ucf.name = 'last_visited_upcoming_changes_at'
  AND u.admin = true

这可能会有所帮助。在我的情况下(最近更新到了 v2026.7.3),它只是一个日期字符串,我认为它应该就是这样。