Скрепка + Heroku + S3 проблема - PullRequest
4 голосов
/ 20 апреля 2011

Я следовал этому уроку , чтобы настроить Paperclip с s3 на heroku.И это работает отлично!Но теперь я перешел к новому проекту и попытался повторить шаги, которые я сделал с первым, чтобы загрузка изображений работала.Но я не в состоянии, и это сводит меня с ума!Пожалуйста, помогите мне с этой проблемой ... я потерял часы и часы.: - /

Вот что происходит: я создаю действие, выбирая фотографию, и я думаю, что загрузка даже не начинается (это слишком быстро!).Ошибка не вызывается, и атрибут "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

мой 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

и мой 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, но ничего не изменилось.

1 Ответ

4 голосов
/ 21 апреля 2011

Ах да !!

Наконец-то я понял: мне нужно изменить _form.html.erb с

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

до

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