我有一个Profile
模型:
has_many :transcripts, dependent: :destroy
accepts_nested_attributes_for :transcripts, allow_destroy: true
所以在我的app/views/profiles/_form.html.erb
上,我有以下内容:
<%= f.simple_fields_for :transcripts do |transcript| %>
<%= render 'transcript_fields', f: transcript %>
<% end %>
app/views/profiles/_transcript_fields.html.erb
看起来像这样:
<%= f.file_field :attachment, class: 'col-lg-4 form-control' %>
所以我要做的是在_transcript_fields
部分,当profile
存在transcripts
时,我希望它显示一个附加文件名的文件字段 - 这样,如果他们想要更改附加的文件,他们只需点击同一个file_field
上传,它就会更新该脚本记录。
我现在正在进行实际的更新操作,但会发生的是,它只显示如下字段:
顶部file_field
是现有文件,底部反映了可以添加的新字段。
答案 0 :(得分:6)
你不能。
设置文件输入值的唯一方法是当用户从他的系统中选择一个文件时。如果你强行这样做,它将在HTML中像这样。
<form name="foo" method="post" enctype="multipart/form-data">
<input type="file" value="c:/rails.png">
</form>
这是出于安全原因。否则,您将能够创建一个自动从客户端计算机上传特定文件的Javascript,但如果您想要上传文件字段的某些编辑功能,您可能想要做的是:
希望我回答你的问题。
答案 1 :(得分:2)
在*.log
部分中,您可以检查当前_transcript_fields
对象是否已被保留。基于此,可以呈现不同的东西。
类似的东西:
transcript