我正在尝试将我们项目中的ruby更新到2.5及更高版本,并将捆包从1.17.2
更新到2.0.1
。这样做之后,在多个位置运行我们的应用程序会产生以下错误:
FrozenError - can't modify frozen String:
这是尝试在其他位置的控制器(Time.zone = current_user.location.time_zone
)中设置时区的结果。
答案 0 :(得分:0)
您可以将 Time.use_zone(zone) 与块一起使用,例如:
class ApplicationController < ActionController::Base
around_action :set_time_zone
def set_time_zone
if logged_in?
Time.use_zone(current_user.location.time_zone) { yield }
else
yield
end
end
end
https://api.rubyonrails.org/classes/Time.html#method-c-zone-3D