我使用paperclip gem中的has_attached_file来计算文件内容的校验和。默认情况下,这个计算将应用于具有名称指纹的列,但问题是,我有两个列必须在名称中具有“指纹”。有没有办法指定回形针应该在哪一列中计算校验和?
这是我尝试过
has_attached_file(
:file,
{
hash_digest: Digest::SHA256,
hash_digest_column: :original_file_fingerprint
}
)
字符串
但什么都没有更新。有什么想法吗?https://github.com/thoughtbot/paperclip#checksum--fingerprint
1条答案
按热度按时间k4emjkb11#
因此,首先,有多个列以
_fingerprint
结尾是没有问题的,Paperclip只使用以附件命名的列,即。file_fingerprint
用于has_attached_file :file
。其次,Paperclip实际上并不关心列,它关心的是属性getter/setter,所以如果你必须遵守一些旧数据库模式,使用
file_fingerprint
来做其他的东西,那么你总是可以重新定义属性方法来使用不同的列。根据您是否仍然需要从Rails模型访问(实际的)
file_fingerprint
,有两个选项。如果您不需要访问它:
字符串
如果你这样做了(这些不会改变/改变Rails DB查询语法,比如
create
,update
,where
子句等):型