如果用户的时区无效,至少有一个 sidekiq 作业会抛出异常,而不是回退到合理的默认值:
在这种情况下,用户的时区被设置为 ""(空字符串)。
我们不应该允许这种情况发生,如果发生,则选择一个合理的备用值(UTC)。
如果用户的时区无效,至少有一个 sidekiq 作业会抛出异常,而不是回退到合理的默认值:
在这种情况下,用户的时区被设置为 ""(空字符串)。
我们不应该允许这种情况发生,如果发生,则选择一个合理的备用值(UTC)。
我们在这些电子邮件中考虑了 nil 时区,但没有考虑 \"\" 值。
此实例中存在其他问题,导致用户的时区被设置为 \"\",但我们应该确保电子邮件不会因无效时区而失败。
另外,元数据:
[1] pry(main)> UserOption.where(timezone: '').count
=> 17
(另一个网站):
[1] pry(main)> UserOption.where(timezone: '').count
=> 6