1

キャリアウェーブを使用して画像をアップロードしています。私が抱えている問題は、content_type がデータベースに保存されていないことです。content_type がリクエストに渡されていることがわかりますが (以下に示すように)、DB に到達していないようです。

アップロード.rb

class Upload < ActiveRecord::Base
  mount_uploader :file, FileUploader
  attr_accessible :file
end

file_uploader.rb

require 'carrierwave/processing/mime_types'

class FileUploader < CarrierWave::Uploader::Base
  include CarrierWave::MimeTypes

  storage :fog
  process :set_content_type
end

uploads_controller.rb

  def create
    @upload = Upload.new params[:upload]
    if @upload.save
        render :json => @upload
    end
  end

schema.rb

  create_table "uploads", :force => true do |t|
    t.date     "expired_at"
    t.datetime "created_at",        :null => false
    t.datetime "updated_at",        :null => false
    t.string   "file"
    t.text     "slug"
    t.string   "file_content_type"
  end

POST リクエスト

Started POST "/uploads" for 127.0.0.1 at 2013-04-11 22:54:56 -0400
Processing by UploadsController#create as */*
  Parameters: {"name"=>"IMG_0004.JPG", "authenticity_token"=>"00kuSJQvgkWmCo+bWBQQzhzwC2qWdsF6T3K6DLuv0l8=", "upload"=>{"file"=>#<ActionDispatch::Http::UploadedFile:0x007fcb34399570 @original_filename="IMG_0004.JPG", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"upload[file]\"; filename=\"IMG_0004.JPG\"\r\nContent-Type: image/jpeg\r\n", @tempfile=#<File:/var/folders/9f/zccg30y961g1kl0zc_kzkfw00000gn/T/RackMultipart20130411-90625-1je1uyu>>}}
4

2 に答える 2

0

列名をに変更する:content_typeと、機能し始めるはずです。

于 2013-04-12T08:31:24.777 に答える