- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
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/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!