执行rails new blog创建Rails项目时出现tzinfo-data相关报错如何处理?
解决方案
步骤1:修正Gemfile中tzinfo-data的声明
打开项目根目录的Gemfile,找到tzinfo-data相关行,替换为以下内容:
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby, :android]
保存后执行命令安装依赖:bundle install
如果仍有缓存问题,可先清理再安装:bundle clean && bundle install
步骤2:安装Termux系统级时区数据库
你当前运行环境为Termux安卓环境,默认没有内置时区数据库,执行Termux包管理命令安装:pkg install tzdata
步骤3:添加Rails时区配置(可选,建议配置)
打开config/application.rb,在class Application的代码块内添加以下配置:
# 替换为你所在的实际时区 config.time_zone = 'Asia/Shanghai' config.active_record.default_timezone = :local
如果修改后仍然触发报错,可强制指定TZInfo使用Ruby数据源而非系统数据源,打开config/boot.rb,在文件末尾添加:
ENV['TZINFO_DATASOURCE'] = 'ruby'
如果是执行
rails new blog的过程中就触发该报错,可先执行rails new blog --skip-bundle创建项目骨架,再按上述步骤修改配置后执行bundle install即可。
配置完成后重新启动Rails服务即可恢复正常。
内容的提问来源于stack exchange,提问作者Kara Karma
相关产品推荐
相关产品推荐

