Rails 7.0.4集成rails_admin时遇sassc加载及导入错误求助
Rails 7.0.4 + Rails Admin 加载错误解决指南
问题重现
Ruby 3.1.2 + Rails 7.0.4 新项目,添加 Rails Admin(3.0/3.1/预览版)后:
- 执行
bundle和rails g rails_admin:install无异常,但访问http://localhost:3000/admin触发LoadError: cannot load such file -- sassc - 添加
sassc-rails后出现SassC::SyntaxError: 无法导入 rails_admin/src/rails_admin/styles/base
解决方案
方案1:强制Rails Admin使用Sprockets处理资源
Rails 7默认使用cssbundling-rails或importmap-rails,与Rails Admin的Sass依赖不兼容,需强制切换回Sprockets:
- 移除Gemfile中的
sassc-rails - 确保Gemfile包含
sprockets-rails:gem "sprockets-rails" - 在
config/initializers/rails_admin.rb中添加配置:RailsAdmin.config do |config| config.asset_source = :sprockets # 保留你的其他Rails Admin配置 end - 执行
bundle install,重启Rails服务
方案2:指定兼容的SassC版本
若方案1无效,尝试锁定sassc到兼容版本:
- 在Gemfile中添加:
gem "sassc", "~> 2.4.0" gem "sassc-rails" - 执行
bundle update sassc,重启服务
方案3:使用Rails Admin的Rails 7适配分支
尝试使用官方针对Rails 7优化的开发分支:
- 在Gemfile中替换Rails Admin的引用:
gem "rails_admin", github: "sferik/rails_admin", branch: "master" - 执行
bundle install,重新运行rails g rails_admin:install,再启动服务
关键注意点
- 确保
config/application.rb中启用了Sprockets:require "sprockets/railtie" - 避免同时启用
cssbundling-rails和sassc-rails,防止资源处理冲突
内容的提问来源于stack exchange,提问作者Nezir
相关产品推荐
相关产品推荐

