Ruby on Rails迁移报错:不支持直接继承ActiveRecord::Migration
解决ActiveRecord::Migration直接继承的错误
问题症状
遇到StandardError,提示内容:
不支持直接继承ActiveRecord::Migration。请指定该迁移所基于的Active Record版本:
class AddAttachmentImageToPosts < ActiveRecord::Migration[7.0]
解决方案
找到对应的迁移文件(路径类似db/migrate/[时间戳]_add_attachment_image_to_posts.rb),修改类的继承语句:
修改前:
class AddAttachmentImageToPosts < ActiveRecord::Migration
修改后:
class AddAttachmentImageToPosts < ActiveRecord::Migration[7.0]
注意:[7.0]需要替换为你当前Rails应用对应的ActiveRecord版本号,若不确定版本可通过以下方式查询:
- 终端执行命令:
rails -v - 打开Rails控制台执行:
ActiveRecord::VERSION::STRING
原因说明
从Rails 5.0版本开始,Active Record要求所有迁移类必须明确指定版本号,目的是确保迁移使用的API与创建时的Rails版本保持一致,避免跨版本API变更引发的兼容性问题。不指定版本号会触发该错误提示。
内容的提问来源于stack exchange,提问作者phskaterock
相关产品推荐
相关产品推荐

