这里有一个类似的案例,但没有解决方案CarrierWave extension_white_list 似乎不起作用 Carrierwave 提供了一个功能
extension_white_list
,旨在防止用户上传无效文件。我已经取消了这个函数的注释,但是我该如何处理这种情况呢?我想捕获此错误并通知用户他应该更改文件。
此 wiki 条目似乎相关,但我不确定如何继续 https://github.com/rierwaveuploader/carrierwave/wiki/How-to%3A-Validate-uploads-with-Active-Record
根据这个问题https://github.com/ Carrierwaveuploader/Carrierwave/issues/1896
解决方案是这样的,它对我有用;
改变:
def extension_white_list
end
至:
def extension_whitelist
end
因此他们从白名单单词中删除了下划线。
在模型内部,
validates_integrity_of :avatar
将导致白名单违规,其行为与保存时带有空白字段的validates_presence_of :another_field
非常相似,即save
将返回 false,之后valid?
将返回 false,并且会出现相关错误消息可在user.errors[:avatar]
中找到。
对于新访客,保护上传的方法现在是:
#extension_allowlist
。
请参阅:https://github.com/rierwaveuploader/carrierwave?tab=readme-ov-file#secure-uploads