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.


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


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.