Ruby on rails FrozenError-can';t修改冻结字符串(ruby 2.5+;)
我正在尝试将项目中的ruby更新为2.5及以上版本,并将bundler从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
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版本吗?