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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 19:04:06