Rails 7执行数据库迁移时config.assets报NoMethodError问题求助
Rails 7.0 迁移报错:undefined method `assets' 问题分析与解决
问题原因
Rails 7.0 对资产管理做了重大调整:默认不再包含sprockets-rails gem,原有的config.assets.*系列配置完全依赖Sprockets组件。执行数据库迁移时,Rails的配置加载流程未初始化资产相关模块,导致无法识别assets配置项,从而抛出NoMethodError。
解决办法
根据你的资产管理需求,二选一即可:
1. 保留Sprockets资产管道
- 在
Gemfile中添加:gem 'sprockets-rails' - 执行
bundle install - 确保
config/application.rb中包含以下代码(若未自动添加):
完成后,原有的require "sprockets/railtie"config.assets.debug、config.assets.digest等配置即可正常生效。
2. 切换到Rails 7默认资产方案
如果打算使用Rails 7推荐的importmaps、jsbundling或cssbundling管理资产,直接删除development.rb中所有config.assets.*配置项即可,迁移和开发环境都能正常运行。
内容的提问来源于stack exchange,提问作者Dev V
相关产品推荐
相关产品推荐

