我正在开发一个需要接受文件上传的项目。文件上传后,我正在进行一些处理 - 从文件中提取信息。我最终计划在后台工作程序中运行它,但它目前正在内联运行。
我尝试使用 after_create 和 after_save 来处理文件,但似乎我的方法是在 Paperclip 的保存方法之前运行的 - 所以我的测试失败,并显示“没有这样的文件或目录”。
有没有办法提前触发保存方法,或者在文件保存到文件系统后以某种方式运行我的方法?
您无法在回调中读取回形针文件,因为它尚未保存到文件系统(或屁股)。为什么,我不太确定。
EDIT:原因是回形针通过以下方式写出文件after_save
打回来。该回调发生在after_create
但是,您可以获得用于处理的文件有效负载。例如:
class Foo < ActiveRecord::Base
has_attached_file :csv
after_create :process_csv
def process_csv
CSV.parse(self.csv.queued_for_write[:original].read)
# .. do stuff
end
end
两分钟前我必须这样做。希望这可以帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)