在使用Active Storage的直接上传中验证文件类型?可能吗?

时间:2019-04-10 21:37:25

标签: ruby-on-rails ruby activerecord rails-activestorage

我在模型中创建了一个方法来验证上传文件的类型。但这不起作用,我认为这是因为我使用的是直接上传。

是否可以通过具有活动存储空间的直接上传来验证文件类型?以及我该怎么办?

我尝试过:

型号:

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' %>

这些都不起作用。即使前端可以正常工作,我仍然想在后端进一步验证它。

我该如何验证呢?

1 个答案:

答案 0 :(得分:0)

您可以使用此 gem。据我所知它实现了你所做的)