首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Ruby on Rails - Active Storage -如何只接受pdf和doc?

Ruby on Rails - Active Storage -如何只接受pdf和doc?
EN

Stack Overflow用户
提问于 2018-01-20 04:30:51
回答 8查看 12.1K关注 0票数 10

是否可以添加验证以仅接受使用活动存储的.pdf和.doc文件?

EN

回答 8

Stack Overflow用户

发布于 2018-01-23 20:11:31

目前,您必须编写自己的验证器来查看附件的MIME类型:

代码语言:javascript
复制
class Item
  has_one_attached :document

  validate :correct_document_mime_type

  private

  def correct_document_mime_type
    if document.attached? && !document.content_type.in?(%w(application/msword application/pdf))
      document.purge # delete the uploaded file
      errors.add(:document, 'Must be a PDF or a DOC file')
    end
  end
end

此外,还有一些有用的快捷方法image?audio?video?text?可以检查多种mime类型。

票数 17
EN

Stack Overflow用户

发布于 2018-10-10 18:47:31

有一个gem可为主动存储提供验证

代码语言:javascript
复制
gem 'activestorage-validator'

https://github.com/aki77/activestorage-validator

代码语言:javascript
复制
  validates :avatar, presence: true, blob: { content_type: :image }
  validates :photos, presence: true, blob: { content_type: ['image/png', 'image/jpg', 'image/jpeg'], size_range: 1..5.megabytes }
票数 8
EN

Stack Overflow用户

发布于 2018-04-27 10:31:41

因为ActiveStorage还没有验证,所以我发现在我的表单中有以下帮助。

代码语言:javascript
复制
<div class="field">
  <%= f.label :deliverable %>
  <%= f.file_field :deliverable, direct_upload: true, 
    accept: 'application/pdf, 
    application/zip,application/vnd.openxmlformats-officedocument.wordprocessingml.document' %>
 </div>
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48349072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档