gpt4 book ai didi

ruby-on-rails - simple_form仅在存在文件时才允许上传

转载 作者:行者123 更新时间:2023-12-04 06:02:30 32 4
gpt4 key购买 nike

我正在使用simple_form(https://github.com/plataformatec/simple_form)库使用Rails 4.2.5进行文件上传。我要禁止文件上传,除非使用simple_form在表单中存在文件,但不知道确切的操作方法。我的代码如下:

<%= simple_form_for @business, html: { multipart: true } do |f| %>
<%= f.simple_fields_for :attached_files, AttachedFile.new do |af| %>
<%= af.input :file, as: :file, label: false %>
<% end %>
<%= f.button :submit,
'Upload File',
class: 'btn btn-mini btn-success hidden',
id: 'submit-file-upload' %>
<% end %>

最佳答案

让我知道您是否在寻找一些更详细的信息,但是最简单的实现方法是在输入语句中添加一个必填字段:

<%= simple_form_for @business, html: { multipart: true } do |f| %>
<%= f.simple_fields_for :attached_files, AttachedFile.new do |af| %>
<%= af.input :file, as: :file, label: false, required: true %>
<% end %>
<%= f.button :submit,
'Upload File',
class: 'btn btn-mini btn-success hidden',
id: 'submit-file-upload' %>
<% end %>


另外,您将要确保您正在执行服务器端验证,因为它们实际上是唯一的具体验证(浏览器验证始终可以被篡改)

  def create
@business = Business.new(business_params)

unless params[:file].nil?
if @business.save!
redirect_to root_path
else
render :new
end
end


最后,确保您的配置文件设置为处理浏览器验证:

SimpleForm.browser_validations = true

关于ruby-on-rails - simple_form仅在存在文件时才允许上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34146523/

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