gemのpaperclipを使うためrails g paperclip post image
を実行してマイグレーションファイルを生成。
その後rails db:migrate
したら
rails aborted!
StandardError: An error has occurred, this and all later migrations canceled:
Directly inheriting from ActiveRecord::Migration is not supported. Please specify the Rails release the migration was written for:
というエラーが発生。
以下のサイトを参考にしたところ、
どうやら原因はマイグレーションファイルがrailsのバージョンに対応していないことが原因のようだった。
##解決法
参考サイトではRails5.2の話だったが、6.0でも通用するのか試しにやってみた。
20200127214811_add_attachment_image_to_posts.rb
class AddAttachmentImageToPosts < ActiveRecord::Migration[6.0] #←[6.0]を追加
def self.up
change_table :posts do |t|
t.attachment :image
end
end
def self.down
remove_attachment :posts, :image
end
end
これでrails db:migrate
をしたら無事成功しました。
##学んだこと
マイグレーションファイルがRailsのバージョンにたいおうしていなかったら、ファイルのクラス部分にバージョンを指定してあげる。