Jon*_*ers 9 ruby-on-rails paperclip ruby-on-rails-4
我正在开发一个需要接受文件上传的项目.上传文件后,我正在进行一些处理 - 从文件中提取信息.我最终计划在后台工作程序中运行它,但它当前正在内联运行.
我已经尝试使用after_create和after_save来处理文件,但似乎我的方法在Paperclip的save方法之前运行 - 所以我的测试失败了"没有这样的文件或目录".
有没有办法尽早触发save方法,或者在文件保存到文件系统后以某种方式运行我的方法?
您无法在回调中读取paperclip文件,因为它尚未保存到文件系统(或对接).为什么,我不确定.
编辑:原因是回形针通过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
Run Code Online (Sandbox Code Playgroud)
我必须在2分钟前做到这一点.希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
4180 次 |
| 最近记录: |