Ruby on rails FrozenError-can';t修改冻结字符串(ruby 2.5+;)

Ruby on rails FrozenError-can';t修改冻结字符串(ruby 2.5+;),ruby-on-rails,ruby,bundler,Ruby On Rails,Ruby,Bundler,我正在尝试将项目中的ruby更新为2.5及以上版本,并将bundler从1.17.2更新为2.0.1。执行此操作后,运行应用程序会在多个位置产生以下错误: FrozenError - can't modify frozen String: 这是尝试在控制器中设置时区(Time.zone=current\u user.location.Time\u zone)以及其他位置的结果。您可以使用时间。将\u zone(zone)与块一起使用,例如: class ApplicationControlle

我正在尝试将项目中的ruby更新为2.5及以上版本,并将bundler从
1.17.2
更新为
2.0.1
。执行此操作后,运行应用程序会在多个位置产生以下错误:

FrozenError - can't modify frozen String:
这是尝试在控制器中设置时区(
Time.zone=current\u user.location.Time\u zone
)以及其他位置的结果。

您可以使用时间。将\u 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
class ApplicationController

看起来这是Ruby 2.5中的一个bug。根据,它可能已在2.5.3或2.6中修复。尝试添加方法“dup”@moveson我认为它没有修复。我试过2.5.3、2.5.5和2.6.2,每次都会得到相同的错误time@AndriyKondzolko不要认为这对我有用,我需要修改实际的对象,而不是它的副本。你能包括错误回溯和你正在使用的Rails版本吗?