gpt4 book ai didi

ruby-on-rails - 显示带有表单错误的事件存储验证错误

转载 作者:行者123 更新时间:2023-12-04 20:29:37 24 4
gpt4 key购买 nike

我正在使用 rails 5.2 , bootstrap-4 , bootstrap_formactive-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

我想要这种带有文件字段的验证
I want this kind of validation with file field

最佳答案

实际上 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 字段...

我发现唯一的解决方法是删除存储和数据库字段上的文件(太丑了):
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

关于ruby-on-rails - 显示带有表单错误的事件存储验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49859108/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com