ruby-on-rails - Rake DB 不适用于 Paperclip(ruby 2.4.0p0 和 Rails 5.1.0)

标签 ruby-on-rails ruby ruby-on-rails-5

我正在使用 Paperclip 创建一个 Pinterest 克隆,我正在尝试收集我的迁移文件,但出现错误:

我能够运行生成命令:

pinterested-app git:(master) ✗ rails generate paperclip user image
Running via Spring preloader in process 88926
      create  db/migrate/20170511010912_add_attachment_image_to_users.rb

但是当我运行时试图清理数据库时,我得到了以下信息:

➜  pinterested-app git:(master) ✗ rake db:migrate
rake 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:

  class AddAttachmentImageToUsers < ActiveRecord::Migration[4.2]
/Users/rthomas/.rvm/gems/ruby-2.4.0/gems/activerecord-5.1.0/lib/active_record/migration.rb:525:in `inherited'
/Users/rthomas/Dropbox/rails-dev/pinterested-app/db/migrate/20170511010912_add_attachment_image_to_users.rb:1:in `<top (required)>'
/Users/rthomas/.rvm/gems/ruby-2.4.0/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:292:in `require'
/Users/rthomas/.rvm/gems/ruby-2.4.0/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:292:in `block in require'
/Users/rthomas/.rvm/gems/ruby-2.4.0/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:258:in `load_dependency'
/Users/rthomas/.rvm/gems/ruby-2.4.0/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:292:in `require'
/Users/rthomas/.rvm/gems/ruby-2.4.0/gems/activerecord-5.1.0/lib/active_record/migration.rb:962:in `load_migration'
/Users/rthomas/.rvm/gems/ruby-2.4.0/gems/activerecord-5.1.0/lib/active_record/migration.rb:958:in `migration'
/Users/rthomas/.rvm/gems/ruby-2.4.0/gems/activerecord-5.1.0/lib/active_record/migration.rb:953:in `disable_ddl_transaction'
/Users/rthomas/.rvm/gems/ruby-2.4.0/gems/activerecord-5.1.0/lib/active_record/migration.rb:1305:in `use_transaction?'
/Users/rthomas/.rvm/gems/ruby-2.4.0/gems/activerecord-5.1.0/lib/active_record/migration.rb:1297:in `ddl_transaction'
/Users/rthomas/.rvm/gems/ruby-2.4.0/gems/activerecord-5.1.0/lib/active_record/migration.rb:1229:in `execute_migration_in_transaction'
/Users/rthomas/.rvm/gems/ruby-2.4.0/gems/activerecord-5.1.0/lib/active_record/migration.rb:1201:in `block in migrate_without_lock'
/Users/rthomas/.rvm/gems/ruby-2.4.0/gems/activerecord-5.1.0/lib/active_record/migration.rb:1200:in `each'
/Users/rthomas/.rvm/gems/ruby-2.4.0/gems/activerecord-5.1.0/lib/active_record/migration.rb:1200:in `migrate_without_lock'
/Users/rthomas/.rvm/gems/ruby-2.4.0/gems/activerecord-5.1.0/lib/active_record/migration.rb:1150:in `migrate'
/Users/rthomas/.rvm/gems/ruby-2.4.0/gems/activerecord-5.1.0/lib/active_record/migration.rb:1007:in `up'
/Users/rthomas/.rvm/gems/ruby-2.4.0/gems/activerecord-5.1.0/lib/active_record/migration.rb:985:in `migrate'
/Users/rthomas/.rvm/gems/ruby-2.4.0/gems/activerecord-5.1.0/lib/active_record/tasks/database_tasks.rb:171:in `migrate'
/Users/rthomas/.rvm/gems/ruby-2.4.0/gems/activerecord-5.1.0/lib/active_record/railties/databases.rake:58:in `block (2 levels) in <top (required)>'
/Users/rthomas/.rvm/gems/ruby-2.4.0@global/gems/rake-12.0.0/exe/rake:27:in `<top (required)>'

最佳答案

由于 Rails 要求指定 Rails 版本,而您使用的是 Rails 5.1,请尝试在迁移文件中的 ActiveRecord::Migration 末尾添加 [5.1]:

class AddAttachmentImageToUsers < ActiveRecord::Migration[5.1]

然后尝试再次运行。

关于ruby-on-rails - Rake DB 不适用于 Paperclip(ruby 2.4.0p0 和 Rails 5.1.0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43904967/

相关文章:

ruby-on-rails - 属于同一模型 Rails 的模型实例

multithreading - RAILS_MAX_THREADS 是 Puma 会在构建时设置和缩放的东西,还是我应该设置它?

ruby-on-rails - spree 更改默认货币和国家

mysql - 一个 Rails 网络应用程序、quickbooks 和 mysql

ruby - 我应该如何使用 Datamapper 保护 Sinatra 应用程序中的批量分配?

ruby - 使实例方法在运行时私有(private)

ruby-on-rails - ApplicationController,Rails 5 的未定义方法 `helper_method'

ruby-on-rails - 如何将json数组中的数据保存到数据库MongoDB中?

ruby-on-rails - Rails 部分使用 helper

Ruby 正则表达式似乎看不到 `dash`