Paperclip

Hello people,

I installed paperclip gem with these following lines in gem file

gem 'rmagick'
gem "paperclip", "~> 2.0"
gem 'aws-s3'

I am using amazon S3.

the problem came when I ran the migration which had the following
migration code

class AddImageColumnsToPicture < ActiveRecord::Migration
   def self.up
    change_table :pictures do |t|
      t.has_attached_file :image
    end
  end

  def self.down
    drop_attached_file :pictures, :image
  end
end

It gave the following error:

An error has occurred, this and all later migrations canceled:

undefined method `has_attached_file' for
#<ActiveRecord::ConnectionAdapters::Table:0xb414d98>

Any one knows how to fix it?

See if updating to the newest gem fixes it. (2.4.5 at the moment). I don't recall seeing that helpful migration method the last time I used Paperclip, so it may be newer than your gem.

Walter

did you add the definitions and functions to your model file?

jordan

Hello Jordan,

I am not quiet sure. This is how my model looks like

class Picture < ActiveRecord::Base
  has_attached_file :image,
            :styles => { :medium => "300x300>", :thumb => "100x100>" },
            :storage => :s3,
            :s3_credentials => "#{Rails.root}/config/s3.yml",
            :path => ":class/:id/:style/:filename"
end

What should I add to it? I think the problem is in migration.

I fixed it using old ways, changed migration file as shown

class AddImageColumnsToPicture < ActiveRecord::Migration
   def self.up
  add_column :pictures, :image_file_name, :string
  add_column :pictures, :image_content_type, :string
  add_column :pictures, :image_file_size, :integer
  add_column :pictures, :image_updated_at, :datetime
  end

  def self.down
  remove_column :pictures, :image_file_name
  remove_column :pictures, :image_content_type
  remove_column :pictures, :image_file_size
  remove_column :pictures, :image_updated_at
  end
end

It looks bulky, but works. i must upgrade to newest gem and see if the
short version works.