Rails 5.2.1
红宝石2.5.1p57(2018-03-29修订版63029)[x86_64-linux]
rvm 1.29.4
我正在使用Active Admin表单创建一个新对象-product
,其中可以包含许多support_docs
。 support_doc
有两个属性:
当我不包含support_doc :filename
输入时,该表单可以正常工作-例如,我可以附加文件没有问题。但是,当我包含filename
属性输入或任何其他输入字段时,文件输入字段就会消失(甚至在HTML DOM中也不会消失)。
复制步骤:
has_many
部分中为B设置文件字段和文件名输入# == Schema Information
#
# Table name: products
#
# id :integer not null, primary key
# title :string
# created_at :datetime not null
# updated_at :datetime not null
class Product < ApplicationRecord
has_many :support_docs, inverse_of: :product
accepts_nested_attributes_for :support_docs
end
# == Schema Information
#
# Table name: support_docs
#
# id :integer not null, primary key
# created_at :datetime not null
# updated_at :datetime not null
# filename :string
# product_id :integer
class SupportDoc < ApplicationRecord
has_one_attached :doc_file
belongs_to :product
validates_presence_of :product
end
ActiveAdmin.register Product do
permit_params :title, support_docs_attributes: [:doc_file, :filename]
form do |f|
f.inputs do
f.input :title
f.has_many :support_docs do |doc|
doc.file_field :doc_file, direct_upload: true
doc.input :filename
end
end
f.actions
end
end
当我不包括:filename
输入时(products.rb
中的第9行):
如您所见,文件输入字段被我包含的任何输入字段替换。我对此进行了尽可能多的研究,但找不到类似问题的人!
答案 0 :(得分:1)
doc.file_field
引起了问题。我使用doc.input :doc_file as: :file
进行了切换。显然,您一定不能将file_field
与inputs
绑定成嵌套形式!