これは簡単な構文の質問であるべきだと思いますが、私のアプローチが正しいかどうかはわかりません。私はpaperclipを使ってFlashからのファイルアップロードを受け入れています。アクションによってオブジェクトが正常に作成され、アップロードが保存されますが、デフォルトのXMLジェネレータでXML応答を生成しようとすると、XMLファイルにpaperclip添付ファイルを含めようとします。 Railsは406エラーを表示し、FlashはI/Oエラーをスローします。Generic Rails AJAXアクションの成功に対するXMLレスポンス?
私はa good resource on embedding paperclip attachments in XMLを見つけましたが、これはトータルオーバーキルです。すべてのフラッシュニーズは、成功または失敗のメッセージです。何かのように:
def jpg_stream
@photo = Photo.new(:name => params[:name], :uploaded => Time.now)
@photo.image = params[:image]
respond_to do |format|
if @photo.save
format.xml { "<success/>" }
else
format.xml { render :xml => @photo.errors, :status => :unprocessable_entity }
end
end
end
この行はどのようなものでしょうか?
format.xml { "<success/>" }
EDIT
これは、エラーのスタックトレースです。私はRailsは何が生成されても何の問題も返さないと思っていますが、406エラーはブラウザ/ Flashが応答を受け入れないことを意味します。
Started POST "/generate_jpg" for 127.0.0.1 at 2011-01-25 12:59:24 -0700
Processing by PhotosController#jpg_stream as HTML
Parameters: {"name"=>"Test snapshot", "stream_id"=>"1", "Filename"=>"this.jpg", "image"=>#<ActionDispatch::
Http::UploadedFile:...
[paperclip] identify -format %wx%h "C:/Users/Sam/AppData/Local/Temp/stream20110125-4048-zqbu60.jpg[0]" 2>NUL
←[1m←[35mAREL (1.0ms)←[0m INSERT INTO "photos" ("name", "description", "stream_id", "created_at", "updated_at", "image_file_name", "image_content_type", "image_file_size", "image_updated_at") VALUES ('Test snapshot', '2011-01-25 19:59:24.630999', 1, '2011-01-25 19:59:24.687002', '2011-01-25 19:59:24.687002', 'this.jpg', 'application/octet-stream', 12251, '2011-01-25 19:59:24.651000')
[paperclip] Saving attachments.
[paperclip] saving .../system/images/86/original/this.jpg
Completed 406 Not Acceptable in 108ms