【问题标题】:when I use paperclip migration error occur当我使用回形针迁移错误发生
【发布时间】:2021-02-23 10:44:29
【问题描述】:

运行这个命令 => rails generate paperclip photo image

创建迁移文件

class AddAttachmentImageToPhotos < ActiveRecord::Migration[5.1]

  def self.up
    change_table :photos do |t|

      t.attachment :image
    end
  end

  def self.down
    remove_attachment :photos, :image
  end
end

迁移错误

rails db:migrate
== 20210223102018 AddAttachmentImageToPhotos: migrating =======================
-- change_table(:photos)
rails aborted!
StandardError: An error has occurred, this and all later migrations canceled:

wrong number of arguments (given 3, expected 2)
/home/rizwan/projects/ClipUploader/db/migrate/20210223102018_add_attachment_image_to_photos.rb:4:in `block in up'
/home/rizwan/projects/ClipUploader/db/migrate/20210223102018_add_attachment_image_to_photos.rb:3:in `up'
/home/rizwan/projects/ClipUploader/bin/rails:5:in `<top (required)>'
/home/rizwan/projects/ClipUploader/bin/spring:10:in `block in <top (required)>'
/home/rizwan/projects/ClipUploader/bin/spring:7:in `<top (required)>'

Caused by:
ArgumentError: wrong number of arguments (given 3, expected 2)
/home/rizwan/projects/ClipUploader/db/migrate/20210223102018_add_attachment_image_to_photos.rb:4:in `block in up'
/home/rizwan/projects/ClipUploader/db/migrate/20210223102018_add_attachment_image_to_photos.rb:3:in `up'
/home/rizwan/projects/ClipUploader/bin/rails:5:in `<top (required)>'
/home/rizwan/projects/ClipUploader/bin/spring:10:in `block in <top (required)>'
/home/rizwan/projects/ClipUploader/bin/spring:7:in `<top (required)>'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)

【问题讨论】:

    标签: ruby-on-rails migration paperclip


    【解决方案1】:

    我遇到了同样的问题,我通过如下更改迁移解决了它,

    class AddAttachmentImageToPhotos < ActiveRecord::Migration[5.1]
    
      def self.up
        add_attachment :photos, :image
      end
    
      def self.down
        remove_attachment :photos, :image
      end
    end
    

    【讨论】:

      【解决方案2】:

      在使用 PaperClip 的 Ruby 3 从 Rails 5 升级到 6.1 时,我遇到了类似的问题。不确定是什么导致了问题,但像正常迁移一样添加列会有所帮助。

        class AddLogoColumnsToUsers < ActiveRecord::Migration[6.1]
          def up
             add_column :users, :logo_file_name, :string
             add_column :users, :logo_file_size, :integer
             add_column :users, :logo_content_type, :string
             add_column :users, :logo_updated_at, :datetime
          end
      
          def down
             remove_column :users, :logo_file_name, :string
             remove_column :users, :logo_file_size, :integer
             remove_column :users, :logo_content_type, :string
             remove_column :users, :logo_updated_at, :datetime
          end
        end
      

      【讨论】:

      • 我在将 ruby​​ 版本升级到 3 时遇到了这个问题。这就像一个魅力。谢谢。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-03
      • 1970-01-01
      • 1970-01-01
      • 2014-01-05
      • 1970-01-01
      相关资源
      最近更新 更多