2

私が得ているエラー

NoMethodError (undefined method `reject' for #<ActionDispatch::Http::UploadedFile:0x007fab6ea5c370>):
  app/controllers/photos_controller.rb:3:in `create'

フォーム (HAML にあります)

  %form{:id => 'photo-upload-form', :method => 'post', :action => '/photos', :enctype => 'multipart/form-data'}
    %input{:type => 'file', :id => 'photo', :name => 'photo'}
    %input.btn{:type => 'submit', :value => 'Upload Photo'}

photos_controller.rb コントローラー

class PhotosController < ApplicationController
  def create # POST /photos
    photo = Photo.create(params[:photo])
    render :nothing => true
  end
end

photo.rb モデル

class Photo
  include Mongoid::Document
  include Mongoid::Paperclip

  has_mongoid_attached_file :photo,
                            :storage => :s3,
                            :bucket => '<My_Bucket>',
                            :s3_credentials => {
                                :access_key_id => '<My_Access_Key>',
                                :secret_access_key => '<My_Secret_Access_Key>'
                            },
                            :styles => {
                                :thumb  => "100x100",
                                :medium => "200x200",
                                :large => "600x400"
                            }
end

Gemfile (バンドル インストールを実行済み)

gem 'mongoid-paperclip', :require => "mongoid_paperclip"
gem 'aws-sdk'

バージョン

Ruby 1.9.3
Rails 3.2.3
Mongoid 2.4.8
Mongoid-Paperclip 0.0.7
Paperclip 3.1.2
aws-sdk 1.5.7

コードはかなり単純で、ドキュメントに従っています。どうすればいいのかわからない。

4

1 に答える 1

1

それで、問題は

    photo = Photo.create(params[:photo])

になるはずだった

    photo = Photo.create(params)

さて、私が行って自分自身を蹴るので、あなたが私を許してくれることを願っています. :)

于 2012-07-14T05:25:16.027 に答える