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.