rails file_field未显示

我想让我的应用使用Shrine上传多个文件,但是one doc建议两个file_field,而other建议一个。在他们的讨论论坛上发布问题后,建议我隐藏一个名为files[]的问题。无论我是否执行此操作,第一个file_field都始终无法呈现。为什么此字段不显示?

<%= form_for @item,html: { enctype: "multipart/form-data" } do |f| %>
 <%= f.fields_for :photos do |i| %>
  <%= i.label :image %>
  <%= i.hidden_field :image,value: i.object.cached_photos_data,class: "upload-data" %>
  <%= i.file_field :image,class: "upload-file" %> /// why is this not rendering??
 <% end %>
 <%= file_field_tag "files[]",multiple: true %> // what purpose does this one serve?
 
 <%= f.text_field :title %>
      
 <%= f.submit "Submit" %>    
<% end %>

型号:

class Item < ApplicationRecord
 has_many :photos,as: :imageable,dependent: :destroy
end

class Photo < ApplicationRecord
 include ImagesUploader::Attachment(:image)
 belongs_to :imageable,polymorphic: true
 validates_presence_of :image
end

控制器:

class ItemsController < ApplicationController
 def new
  @item = current_user.items.new
 end

 def create
  @item = current_user.items.create(item_params)
  @item.save
 end

 private
 def item_params
  params.require(:item).permit(:title,photos_attributes: { image: [] })
 end
end
maobo_study 回答:rails file_field未显示

仔细阅读第一个链接:它表示单个字段(i.file_field :image)用于显示现有图像(这就是示例中将其包装在f.fields_for :photos中的原因)和多个字段({ {1}})用于上传新文件。因此,如果您的file_field_tag "files[]",multiple: true没有@item,则不会显示该字段。

让我知道是否需要进一步澄清-非常乐意提供帮助!

本文链接:https://www.f2er.com/1493544.html

大家都在问