我的应用程序允许用户上传图像,然后创建该图像的不同版本(例如,与另一图像对齐和裁剪)。中间步骤是我需要将上传的文件复制到另一个对象并进行处理。最简单的方法是在本地上传。
来自carrierwave wiki,they suggest using a modified version of StringIO。
在carreirwave自述文件中,他们还建议使用File.open(类似obj.image=File.open('path_to_file')
。
我还发现了使用fixture_file_upload
中的ActionDispatch::TestProcess
的引用(通常在测试中,但我不确定为什么它仅限于该环境)。
任何人都可以对使用这些方法的利弊(如果有的话)给出一个很好的解释吗?
感谢。
答案 0 :(得分:0)
我刚刚发现了一个主要的区别,至少在载波的背景下。如果您使用载体wave并将move_to_cache
选项设置为true并使用File.open
安装上传列,则会移动提供给File.open
的文件,而使用StringIO
时,会获得“T