如何强制用户在rails中附加文件(file_field不能为空)

How to force user to attach file (file_field can not be blank) in rails

我正在使用 rails 创建一个播客网站。当用户将新剧集上传到 his/her 帐户时,我希望他们必须上传播客(mp3 文件)和该播客的缩略图 (jpeg/png)。

问题是当我尝试在 SQLite 中为 mp3 和缩略图创建列时,它不会让我有一个初始值为空的 "not null" 列。

我不想要默认非空值,我想强制他们在上传新剧集时附加文件。

我正在使用回形针为附件列生成迁移 "rails g paperclip user attachment"

这是缩略图的迁移文件,我有另一个类似的 MP3 文件。

class AddAttachmentThumbnailToEpisodes < ActiveRecord::Migration
  def self.up
    change_table :episodes do |t|
      t.attachment :thumbnail, null: false
    end
  end

  def self.down
    remove_attachment :episodes, :thumbnail
  end
end

它不会让我rake db:migrate这个

你可以用两种方式处理它

#1 在模型中进行验证

validates :attachment, presence: true

#2 可以用required: true选项的形式处理

<%= f.file_field :attachment, required: true %>