【发布时间】:2019-09-01 10:47:28
【问题描述】:
我在我的模型中创建了一个方法来验证上传文件类型。但它不起作用,我认为这是因为我使用的是直接上传。
是否可以通过主动存储直接上传来验证文件类型?我该怎么做?
我试过了:
型号:
validate :correct_video_type
def correct_video_type
if video.attached? && video.content_type.in?(%w(video/mov video/mp4 video/avi video/mpeg))
errors.add(:video, "Must be video format")
elsif video.attached? == false
errors.add(:video, "Video must be attached")
end
end
查看:
<%= form.file_field :video, class: "upload", direct_upload: true %>
没有任何东西被验证...
我也尝试过前端验证,但没有成功:
<%= form.file_field :video, class: "upload", direct_upload: true, accept: 'video/mov, video/mpeg, video/mp4, video/avi' %>
这些都不起作用。即使前端可以工作,我仍然想在后端进一步验证它。
我如何验证这一点?
【问题讨论】:
-
您是否尝试在
correct_video_type中添加断点以查看是否被调用? -
我没有。我也在不使用 direct_upload 的情况下尝试了这个,但它也没有用。我可以假设它没有被调用?
-
我想说试试断点检查
-
@Nandhini 谢谢,我想是时候升级了....
标签: ruby-on-rails ruby activerecord rails-activestorage