我正在尝试设置我的rails应用程序以使用用户模型中设置的时区。用户模型将时区保存为字符串,然后在应用程序中我从当前用户时区设置时区,如本页所述:https://www.varvet.com/blog/working-with-time-zones-in-ruby-on-rails/
around_action :user_timezone, if: :current_user
private
def user_timezone
Time.use_zone(ActiveSupport::TimeZone.new(current_user.timezone)){ yield }
end
不幸的是,这似乎对应用的时区设置没有任何影响。当我在视图中打印日期时,他们使用默认的应用程序时区并忽略用户时区。如果我只是在视图中打印Time.zone,它会打印默认的应用程序时区而不是用户时区。
我做错了什么或者是否有更好的方法在应用中设置用户时区?
答案 0 :(得分:0)
看起来我只是在我的数据库中存储错误的字符串以用于时区。如果我从选择的ActiveSupport :: TimeZone.all设置用户时区,那么当我将该选择解析为ActiveSupport :: TimeZone.new(current_user.timezone)时,它就可以工作。