文件验证不适用于Rails中的直接上传(活动存储)

时间:2019-05-31 21:10:04

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

我正在使用活动存储“直接上传”来上传图像。文件验证似乎无效,因为我正在使用直接上传。

validate :content

  scope :desc, -> { order(created_at: :desc) }

  private 

  def content
    if file.attached? && !file.blob.content_type.starts_with?('image/')
      errors.add(:base, 'Must be a image')
    end

  end


<%= form.file_field :file, accept:"image/*", required:true,direct_upload: true %>

如果删除“ direct_upload:true”,则验证有效

我想知道如何验证content_type以便直接上传。任何帮助深表感谢!谢谢

不适用于以下两种情况:

1)有效的content_type 在active_storage_blobs表中创建的文件不会发生(file.purge不起作用) 2)无效的content_type “无效的MIME类型”应用程序崩溃

发生这种情况是因为它在验证之前直接上传到了disk / amazon / google。

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

也许这可以帮助您

# config/environments/development.rb

config.active_storage.service = :amazon