ruby-on-rails – 显示带有表单错误的活动存储验证错误
发布时间:2020-12-16 21:08:33 所属栏目:百科 来源:网络整理
导读:我正在使用rails 5.2,bootstrap-4,bootstrap_form和active-storage文件正在成功上传.我想要的是当我在表单中输入公司名称时,它应该检查company_logo. 我试过这个,当我在表单中包含错误循环时它工作得很好 在这里看 - if @company.errors.any? #error_explana
我正在使用rails 5.2,bootstrap-4,bootstrap_form和active-storage文件正在成功上传.我想要的是当我在表单中输入公司名称时,它应该检查company_logo.
我试过这个,当我在表单中包含错误循环时它工作得很好 - if @company.errors.any? #error_explanation %ul - @company.errors.full_messages.each do |message| %li= message 型号代码 has_one_attached :company_logo validates :name,:company_logo,presence: true after_validation :is_logo?,if: Proc.new { |a| a.name? } def is_logo? errors.add(:base,'Please upload your company logo.') if !self.company_logo.attached? end 我想用文件字段进行这种验证 解决方法
实际上active_storage不支持验证.
我为在场做了什么: class CompanyModel < ApplicationRecord has_one_attached :company_logo validate :company_logo? private def company_logo? errors.add(:base,'Please upload your company logo.') unless company_logo.attached? end end 但是这会将文件上传到您的存储并在数据库中创建active_storage blob字段… 唯一的workarround我发现删除存储和数据库字段上的文件(太丑了): def company_logo? # Clean exit if there is a logo return if company_logo.attached? # Unless add error errors.add(:base,'Please upload your company logo.') # Purge the blob company_logo.record.company_logo_attachment.blob.purge # Purge attachment company_logo.purge end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |