5

シンプルなコントローラーを使用して、Carrierwave を使用して写真を Rails アプリにアップロードしています。

  # POST /photos
  # POST /photos.xml
  def create
    @photo = Photo.new(params[:photo])

    respond_to do |format|
      if @photo.save
        format.html { redirect_to(@photo, :notice => 'Photo was successfully created.') }
        format.xml  { render :xml => @photo, :status => :created, :location => @photo }
        format.json { render :json => @photo, :status => :created }
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @photo.errors, :status => :unprocessable_entity }
        format.json { render :json => @photo.errors, :status => :unprocessable_entity }
      end
    end
  end

私はAjax経由でファイルを送信しています.アップロードが実際に保存され、正しく処理されているにもかかわらず、Railsはまだ不思議なCompleted 406 Not Acceptable.

Started POST "/photos" for 127.0.0.1 at 2011-08-17 14:20:01 +0300
  Processing by PhotosController#create as JS
  Parameters: {"Filename"=>"IMG_5758.JPG", "folder"=>"/apartments/4e4ba2e735be35f40a00000b/", "_http_accept"=>"application/javascript", "fileext"=>"*.png;*.jpg;*.gif", "_dirot_session"=>"BAh7CEkiD3Nlc3Npb25faWQGOgZFRiIlOTYxNGM2MDk3NmU0YjRjN2U3NjMzNTA1YmQwMDg5MWJJIgx1c2VyX2lkBjsARm86E0JTT046Ok9iamVjdElkBjoKQGRhdGFbEWlSaQH0aQHtaQGUaTppAb5pOmkSaQGAaQBpAGkGSSIQX2NzcmZfdG9rZW4GOwBGSSIxb2RDcm9OMXRkYis3MXZpQ1ZtN1ZkZE54TmhTckFzalVBUmFTQWxxeU4yQT0GOwBG--2b5bc2b162dc2a1423750cbae32d5238d5c45064", "authenticity_token"=>"odCroN1tdb 71viCVm7VddNxNhSrAsjUARaSAlqyN2A=", "photo"=>{"apartment_id"=>"4e4ba2e735be35f40a00000b", "image"=>#<ActionDispatch::Http::UploadedFile:0x000001033fe810 @original_filename="IMG_5758.JPG", @content_type="application/octet-stream", @headers="Content-Disposition: form-data; name=\"photo[image]\"; filename=\"IMG_5758.JPG\"\r\nContent-Type: application/octet-stream\r\n", @tempfile=#<File:/var/folders/qI/qIWmC9LgFB0Dk8E4z1xjAE+++TI/-Tmp-/RackMultipart20110817-62474-4akysm>>}, "Upload"=>"Submit Query"}
Creating scope :near. Overwriting existing method Apartment.near.
MONGODB dirot_development['apartments'].find({:_id=>BSON::ObjectId('4e4ba2e735be35f40a00000b')})
MONGODB dirot_development['photos'].insert([{"apartment_id"=>BSON::ObjectId('4e4ba2e735be35f40a00000b'), "_id"=>BSON::ObjectId('4e4ba3ea35be35f40a00000f'), "updated_at"=>2011-08-17 11:20:10 UTC, "image_filename"=>"IMG_5758.JPG", "created_at"=>2011-08-17 11:20:10 UTC}])
Completed 406 Not Acceptable in 9125ms

なぜこれが起こっているのか知っていますか?

4

1 に答える 1

1

コントローラーはリクエストを「JS」として処理しています。ただし、コントローラー アクションは、html、xml、および json にのみ応答します。format.js と関連する応答の行を追加します。

于 2011-09-27T14:32:16.347 に答える