升级polaris_view_components至2.x后启动报错:未初始化常量Polaris::ViewHelper
解决Polaris View Components升级后
uninitialized constant Polaris::ViewHelper错误 步骤1:确认项目实际使用的gem版本
首先检查当前项目加载的是否是你安装的2.2.4版本:
bundle show polaris_view_components
如果输出路径显示的是polaris_view_components-2.0.0,说明bundler未更新到指定版本,执行更新:
bundle update polaris_view_components
更新完成后再次确认版本,确保加载的是2.2.4(或更高的2.x版本)。新版本大概率修复了命名空间的错误。
步骤2:若版本更新后仍报错,添加补丁初始化文件
如果更新到最新2.x版本后问题依旧,说明gem的engine代码存在命名空间错误(因isolate_namespace Polaris::ViewComponents,helper实际在Polaris::ViewComponents命名空间下,而非Polaris)。创建初始化文件修复:
在config/initializers/polaris_helper_fix.rb中写入:
Rails.application.config.after_initialize do # 清理错误的helper引用 ActionController::Base.helpers.instance_eval do remove_helper Polaris::ViewHelper rescue nil remove_helper Polaris::UrlHelper rescue nil end # 加载正确命名空间下的helper ActiveSupport.on_load(:action_controller_base) do helper Polaris::ViewComponents::ViewHelper helper Polaris::ViewComponents::UrlHelper end end
步骤3:验证修复
重启Rails应用,查看错误是否消失。
内容的提问来源于stack exchange,提问作者aldrien.h
相关产品推荐
相关产品推荐

