さまざまなバージョンのビデオをバックグラウンドで自動的にレンダリングするようにサイトを構成しました。それは実際に本当にうまく機能しています。ビデオが3つの異なるトランスコードで成功すると、成功の電子メールが送信されます。ただし、エラーが発生した場合は、失敗メールが送信されます。私が抱えている問題は、少なくとも成功または失敗したビデオの名前を付けることができるように、アクションメーラーに自分自身を渡そうとしていることです。ただし、selfはnullのようです。
モデル
def video_success(format, opts)
VideoMailer.video_success(self).deliver
end
def video_rescue(format, opts)
VideoMailer.video_error(self).deliver
end
アップローダー
version :mp4 do
process :encode_video => [:mp4, callbacks: {rescue: :video_rescue} ]
def full_filename(for_file)
"#{File.basename(for_file, File.extname(for_file))}.mp4"
end
end
version :webm do
process :encode_video => [:webm, callbacks: { after_transcode: :video_success, rescue: :video_rescue }]
def full_filename(for_file)
"#{File.basename(for_file, File.extname(for_file))}.webm"
end
end
これをどのように達成できるかについて何か考えはありますか?また、エラーが発生した場合は、生成されたエラーメッセージを返すのが最善です。
次に、各ユーザーモデルにはメールアドレスがあります。ビデオをアップロードするユーザーは、電子メールアドレスを受け取る必要があります。ただし、モデル内でcurrent_userを使用すると問題が発生します。その情報はバックグラウンドプロセスに渡されないので、バックグラウンダーにも関係があると思います。