Rails3アプリでPaperclipを使用してWebカメラから写真をキャプチャすることに関するこの素晴らしい記事を読みました。
Carrierwave を使用するように変換しようとしています (すべて同じ画像を共有する他のアプリで使用するため、一貫性を保ちたいと考えています)。
私が苦労しているのは、Carrierwave が jpegcam からキャプチャしたフラッシュ イメージからファイルを受け入れるようにする方法です。Paperclip はよりファイル指向で、Carrierwave はよりオブジェクト指向のようです。
これが私が試していることです:
Carrierwave アップローダーが搭載されたモデルがあります。
class Individual < ActiveRecord::Base
mount_uploader :picture, PictureUploader
ビュー (「編集」ビュー) では:
#webcam
= embed{:id => 'webcam_movie'}... (the embedded flash)...
= submit_tag "Take picture", :onclick => 'webcam.snap();'
= form_for @individual, :html => {:multipart => true} do |f|
= f.text_field :firstname
= f.text_field :lastname
= f.file_field :picture
= f.submit
= content_for :javascripts do
:javascript
function upload_complete(msg) {
if (msg) {
????
} else {
alert('An error occured');
webcam.reset();
}
}
webcam.set_hook('onComplete', 'upload_complete');
私の問題は、Carrierwave には実際には「アップロード」機能がなく、モデル オブジェクトを使用することです。そのため、ファイルを受け入れるためにコントローラーに何を入れればよいかよくわかりません。そして、JavaScriptでコールバックを処理する方法。(恥ずかしすぎてここで再現できないことをいくつか試しました。画像オブジェクトをコントローラーに渡しましたが、それを処理する方法がわかりませんでした)
誰でも私を助けることができますか?ありがとう。