دعني أعود خطوة إلى الوراء… ما كنت أفعله هناك كان محاولة لتغيير تفضيلات المسؤول على أمل أن لا يحتاج الكود الذي يرمي الاستثناء إلى التنفيذ.
لكن ما نريده حقًا هو معرفة ما إذا كان هناك خطأ برمجي يحتاج إلى إصلاح، أو شيء غير طبيعي في قاعدة البيانات الخاصة بك لا ينبغي أن يكون موجودًا. أو ربما كلاهما.
يؤدي سجل التتبع إلى هذا الكود في 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)، هي مجرد نص تاريخ، وهو ما أعتقد أنه يجب أن يكون كذلك.