gpt4 book ai didi

ruby-on-rails - 使用 Paperclip gem 验证上传时的附件内容

转载 作者:行者123 更新时间:2023-12-04 06:33:04 24 4
gpt4 key购买 nike

Paperclip 具有验证器方法,用于验证文件的存在、大小和内容类型。但是有没有办法在保存记录之前验证文件的内容?

我试着做 validate :my_method并从 [attachment].path 打开文件在 my_method ,但这当然会失败,因为在保存记录之前,附件尚未移动到文件系统中的最终放置位置。

编写自定义 Paperclip 后处理器似乎是一种选择,因为它可以在保存记录之前访问属于附件的 File 对象,但是出现故障的处理器不会在保存记录之前使记录无效。

有没有好的方法可以做到这一点?我还能如何确保我的应用程序中只有符合要求的文件? (如果文件无效,我是否可以使用其他回调来优雅地删除整个记录?)

编辑:哦。特别是,从 after_save 回调中引发 ActiveRecord::Rollback 会做一些理智的事情吗?

最佳答案

啊,但是您可以在保存记录之前从验证器访问 File 对象,方法是调用 [attachment].to_file .针对 [attachment].to_file.path 运行我的解析器(而不是 attachment.path )在 my_method似乎工作得很好。

https://stackoverflow.com/questions/7047183/how-to-set-an-attribute-for-a-model-instance-in-a-paperclip-post-process-callback , [attachment].queued_for_write[:original].path也可能是一种选择。

关于ruby-on-rails - 使用 Paperclip gem 验证上传时的附件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7044645/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com