You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails 5.2.3出现active_support uninitialized constant I18n错误如何解决

问题原因
  • 项目lib目录下存在自定义的i18n.rb文件:由于你配置了config.autoload_paths包含lib目录,active_support加载时执行require "i18n"会优先加载项目内的这个文件,而非i18n gem的入口文件,导致I18n模块未定义,触发NameError,这是该类问题的最高发诱因
  • Bundler 2.2.31存在已知的gem加载路径优先级异常bug,会导致依赖gem的加载顺序错乱,i18n gem的入口没有被正确加载
  • 极少数情况为i18n gem安装损坏,文件不完整
解决方案
  • 第一步:排查项目根目录、lib/、config/initializers/目录下是否存在名为i18n.rb的自定义文件,若存在,将其重命名为不冲突的名称(比如i18n_config.rb),重启服务测试
  • 第二步:如果第一步操作后问题未解决,降级Bundler版本到之前正常使用的2.2.29:
    执行以下命令:
    gem install bundler:2.2.29
    bundle _2.2.29_ install
    
    完成后重启服务测试
  • 第三步:如果前两步都无效,重新安装i18n gem:
    gem uninstall i18n -v 1.8.11
    bundle install
    
  • 临时应急方案:若无需调整现有配置,可在config/boot.rb文件最顶部手动引入i18n gem:
    require 'i18n'
    
    强制提前加载i18n gem的核心模块,绕过加载顺序问题
  • 可选方案(完全不需要国际化功能时使用):将application.rb中的require 'rails/all'替换为逐个加载需要的框架组件,跳过i18n加载:
    require "rails"
    # 按需保留需要的框架,移除不需要的组件,无需引入i18n相关内容
    require "active_model/railtie"
    require "active_job/railtie"
    require "active_record/railtie"
    require "action_controller/railtie"
    require "action_mailer/railtie"
    require "action_view/railtie"
    require "sprockets/railtie"
    

内容的提问来源于stack exchange,提问作者Lloydo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 01:54:07