编辑表单时如何显示Active Storage附加的文件



我正在构建一个协议管理应用程序。每个协议都有供应商、激活、到期日期和文件。文件是pdf格式的附件协议。我使用活动存储来附加文件。当我编辑表单时,我看不到附件。因此,如果我更改任何其他参数,比如供应商和更新协议,之前附加的文件将被删除。

编辑协议表单

如果我在编辑时没有上传任何其他文件,我应该怎么做才能使附加的文件名在更新时出现,而不会被删除?

更新:

这是代码。除了在允许的参数中添加:file之外,我没有对生成的agreements_controller.rb进行任何调整。

agreement.rb
class Agreement < ApplicationRecord
belongs_to :vendor
has_one_attached :file  
end

agreements_controller.rb
class AgreementsController < ApplicationController
def agreement_params
params.require(:agreement).permit(:vendor_id, :activation_date, :expiration_date, :file)
end
end

_form.html.erb
<%= form_with(model: agreement, local: true) do |form| %>
…
<div class="field">
<%= form.label :file %>
<%= form.file_field :file %>
</div>
<div class="actions">
<%= form.submit %>
</div>
<% end %>

添加协议模型

attribute :remove_file, :boolean,  default: false
after_save :purge_file, if: :remove_file

最新更新