このトピックに関して私が見た唯一の適度に有用なスレッドは次のとおりです。
http://groups.google.com/group/rubyonrails-talk/browse_thread/thread/709d97e06b373786
attachment_fu コードを簡単に確認した Matchu のソリューションは、おそらく正しいものだと思います。Matchu が修正した save_attachment のパッチまたはスニペットを共有してくれたら嬉しいです。方法。これは私にとって問題になっており、おそらく attachment_fu を完全に置き換えるよりも作業が少ないので、私は自分でこれを掘り下げようとしています...
アップデート
Matchu のアウトラインを使用して、軽いテストの後に機能するように見える短い (洗練されていない場合) ソリューションを思いつきました。
save_attachment を変更しましたか? attachment_fu/attachment_fu.rb:
def save_attachment?
return false unless (thumbnail || !full_filename || @active_upload) #added
File.file?(temp_path.to_s)
end
……マッチュが配置した条件を確認する。データが Upload_data= セッター メソッドに渡されたかどうかを判断するエレガントな方法を思いつくことができませんでした (誰かがこれを行うためのより良い方法を持っている場合、私はすべての耳です。私はまだ ruby/rails 初心者です)。 ) なので、upload_data= に行を追加して、グローバル変数 @active_upload を設定しました。
def uploaded_data=(file_data)
return nil if file_data.nil? || file_data.size == 0
self.content_type = file_data.content_type
self.filename = file_data.original_filename if respond_to?(:filename)
@active_upload=true # added
if file_data.is_a?(StringIO)
file_data.rewind
self.temp_data = file_data.read
else
self.temp_path = file_data
end
end
それが役に立てば幸いです。グローバル変数で行ったことを処理するためのよりエレガントな方法があれば、ぜひ聞いてください。