我正在尝试将我的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,它会打印默认的应用程序时区,而不是用户时区。
是我做错了什么,还是有更好的方法在应用程序中设置用户时区?
发布于 2018-03-03 00:00:32
看起来我只是在我的数据库中为时区存储了错误的字符串。如果我从选择的ActiveSupport::TimeZone.all中设置用户时区,那么当我将该选择解析为ActiveSupport::TimeZone.new(current_user.timezone).时,它就会工作
https://stackoverflow.com/questions/49064565
复制相似问题