Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何指定哪些文件可以用曲别针上载到服务器_Ruby On Rails_Paperclip - Fatal编程技术网

Ruby on rails 如何指定哪些文件可以用曲别针上载到服务器

Ruby on rails 如何指定哪些文件可以用曲别针上载到服务器,ruby-on-rails,paperclip,Ruby On Rails,Paperclip,是的,我知道回形针有一个validates\u附件\u内容\u类型,但我真的想让它通过文件扩展名进行验证\u。。。ie。。。我的应用程序中有一个允许的文件扩展名数组,我想让paperclip看看即将上载的文件是否在该数组中有文件扩展名,如果没有,我希望它甚至不启动上载并返回错误 如何执行此操作。您可以定义自己的验证方法: validate :validate_by_file_extension def validate_by_file_extension errors.add_to_bas

是的,我知道回形针有一个validates\u附件\u内容\u类型,但我真的想让它通过文件扩展名进行验证\u。。。ie。。。我的应用程序中有一个允许的文件扩展名数组,我想让paperclip看看即将上载的文件是否在该数组中有文件扩展名,如果没有,我希望它甚至不启动上载并返回错误


如何执行此操作。

您可以定义自己的验证方法:

validate :validate_by_file_extension

def validate_by_file_extension
  errors.add_to_base("Invalid file extension") unless ALLOWED_EXTENSIONS.include?(File.extname(attachment_file_name))
end

但是,在开始从rails上传之前,您不能轻松地回退,因为在大多数情况下,当调用rails控制器操作方法时,文件已经流式传输,临时文件已经创建。您需要在堆栈上走得更高,才能阻止东西甚至开始上传。

您可以定义自己的验证方法:

validate :validate_by_file_extension

def validate_by_file_extension
  errors.add_to_base("Invalid file extension") unless ALLOWED_EXTENSIONS.include?(File.extname(attachment_file_name))
end

但是,在开始从rails上传之前,您不能轻松地回退,因为在大多数情况下,当调用rails控制器操作方法时,文件已经流式传输,临时文件已经创建。你需要在堆栈中更高的位置才能阻止东西甚至开始上传。

取决于你停止上传的意思。将不会保存该模型。但这并不能阻止整个上传流到您的服务器。这取决于您停止上传的意思。将不会保存该模型。但这并不能阻止整个上传流到您的服务器。