【发布时间】:2011-08-09 13:03:32
【问题描述】:
我跟着this tutorial 在heroku 上设置了带有s3 的Paperclip。它工作正常! 但是现在我搬到了一个新项目,我试图复制我第一个制作的步骤以使图像上传工作。但我做不到,这让我发疯!请帮我解决这个问题......我已经失去了几个小时。 :-/
这是正在发生的事情:
我创建了一个选择照片的活动,我认为上传甚至没有开始(它太快了!)。没有调用错误,我的activity的“photo”属性是/photos/original/missing.png
这是我的模型文件:
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
我的宝石文件:
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
和我的 s3.yml(用完整的键代替“...”):
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...
这是日志:
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"):
如果您需要更多信息,请告诉我!
哦,我试过heroku restart,但没有任何改变。
【问题讨论】:
-
您是运行回形针生成器还是手动添加附件的必要字段?
-
我确实手动添加了它们。自动执行此操作的命令是什么?
-
它是
rails g paperclip activity photo,但可以手动添加,只要确保它们存在即可。
标签: ruby-on-rails amazon-s3 heroku paperclip