Problem with portrait + Heroku + S3

I completed this tutorial to install a clip with s3 on the hero. And everything is fine! But now I moved on to a new project, and I tried to reproduce the steps that I took with the first to upload images. But I can’t, and it drives me crazy! Please help me with this problem ... I have lost hours and hours .: - /

This is what happens: I create an action that selects a photo, and I think the download does not even start (too fast!). No error is caused, but the "photo" attribute of my activity is /photos/original/missing.png

Here is my model file:

 class Activity < ActiveRecord::Base has_many :infos, :dependent => :destroy has_many :links, :dependent => :destroy has_many :events, :dependent => :destroy accepts_nested_attributes_for :infos has_attached_file :photo, :styles =>{ :thumb => "80x60#", :medium => "160x120#", :large => "320x240#", :home => "320x370#" }, :storage => :s3, :s3_credentials => "#{RAILS_ROOT}/config/s3.yml", :path => ":attachment/activities/:id/:style.:extension", :bucket => 'andrea' end 

my gemfile:

 source 'http://rubygems.org' gem 'rails', '3.0.5' gem "paperclip", "~> 2.3" gem 'aws-s3' # Bundle edge Rails instead: # gem 'rails', :git => 'git://github.com/rails/rails.git' gem 'sqlite3' # Use unicorn as the web server # gem 'unicorn' # Deploy with Capistrano # gem 'capistrano' # To use debugger (ruby-debug for Ruby 1.8.7+, ruby-debug19 for Ruby 1.9.2+) # gem 'ruby-debug' # gem 'ruby-debug19', :require => 'ruby-debug' # Bundle the extra gems: # gem 'bj' # gem 'nokogiri' # gem 'sqlite3-ruby', :require => 'sqlite3' # gem 'aws-s3', :require => 'aws/s3' # Bundle gems for the local environment. Make sure to # put test-only gems in this group so their generators # and rake tasks are available in development mode: # group :development, :test do # gem 'webrat' # end 

and my s3.yml (with full keys in place of "..."):

 development: bucket: andrea access_key_id: AKIAII... secret_access_key: vM977oy6W2TIbArCG9... test: bucket: andrea access_key_id: AKIAII... secret_access_key: vM977oy6W2TIbArCG9... production: bucket: andrea access_key_id: AKIAII... secret_access_key: vM977oy6W2TIbArCG9... 

Here is the Log:

 WARNING: Can't mass-assign protected attributes: infos_attributes [1m[36mAREL (0.3ms)[0m [1mINSERT INTO "activities" ("photo", "created_at", "updated_at", "home", "photo_file_name", "photo_content_type", "photo_file_size", "photo_updated_at", "name") VALUES (NULL, '2011-04-20 13:27:57.428869', '2011-04-20 13:27:57.428869', NULL, NULL, NULL, NULL, NULL, NULL)[0m [paperclip] Saving attachments. Redirected to http://localhost:3000/activities/15 Completed 302 Found in 45ms Started GET "/activities/15" for 127.0.0.1 at 2011-04-20 15:27:57 +0200 Processing by ActivitiesController#show as HTML Parameters: {"id"=>"15"} [1m[35mActivity Load (0.9ms)[0m SELECT "activities".* FROM "activities" WHERE "activities"."id" = 15 LIMIT 1 Rendered activities/show.html.erb within layouts/application (13.5ms) Completed 200 OK in 39ms (Views: 17.2ms | ActiveRecord: 1.2ms) Started GET "/photos/large/missing.png" for 127.0.0.1 at 2011-04-20 15:27:57 +0200 ActionController::RoutingError (No route matches "/photos/large/missing.png"): 

If you need more information let me know!

Oh, I tried with heroku restart , but nothing has changed.

+4
source share
1 answer

Oh yeah!

Finally, I realized: I need to change _form.html.erb ,

 <%= form_for @activity do |f| %> ... <% end %> 

to

 <%= form_for @activity, :html => { :multipart => true } do |f| %> ... <% end %> 
+4
source

All Articles