Ruby on rails 使活动存储器已附加一个非空

Ruby on rails 使活动存储器已附加一个非空,ruby-on-rails,rails-activestorage,Ruby On Rails,Rails Activestorage,我有一个带有活动存储的模型,它安装了一个附件,一些用户在没有向表单添加文件的情况下点击了提交。在我将验证添加到前端之前,我希望确保后端将拒绝没有附加文件的记录 如何设置一个模型,使其不会保存,除非一个活动存储器连接了一个或多个内容?我认为,目前唯一的选择是遵循“常规”路径: 将包含ActiveModel::Validations和使用QwertieCustomValidator验证添加到您的模型中,在应用程序/验证程序下创建自定义验证程序,然后在那里检查是否记录。附加的文件。附加的?,如果否,添

我有一个带有活动存储的模型,它安装了一个附件,一些用户在没有向表单添加文件的情况下点击了提交。在我将验证添加到前端之前,我希望确保后端将拒绝没有附加文件的记录


如何设置一个模型,使其不会保存,除非一个活动存储器连接了一个或多个内容?

我认为,目前唯一的选择是遵循“常规”路径: 将
包含ActiveModel::Validations
使用QwertieCustomValidator验证
添加到您的模型中,在
应用程序/验证程序
下创建自定义验证程序,然后在那里检查
是否记录。附加的文件。附加的?
,如果否,添加错误:
记录。错误。添加(:附加的文件,“没有附加的文件”)

再想一想,您不需要在其他文件中指定验证器,我只是在我的项目中这样做,以匹配项目的流。最短的路径如下所示:

has_one_attached :attached_file

validate :check_file_presence

def check_file_presence
  errors.add(:attached_file, "no file added") unless attached_file.attached?
end
希望这对你有帮助