是的我知道回形针有一个validates_attachment_content_type,但我真的想让它有validate_by_file_extension ...即...我的应用程序中有一系列允许的文件扩展名,我想要回形针查看是否即将上传的文件在该数组中有一个文件扩展名,如果不是,我希望它甚至不开始上传并重新发送错误。
我该怎么做呢。
答案 0 :(得分:1)
您可以定义自己的验证方法:
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控制器动作方法被调用时,文件已经流式传输并且创建了一个临时文件。你需要在堆栈中走得更高才能阻止甚至开始上传。