tro*_*y34 3 ruby-on-rails rails-activestorage ruby-on-rails-5.2
我试图在 ActiveStorage 继续保存之前获取用户上传的文件的名称。该表单是使用生成的form_with,如下所示:
<%= form_with model: upload do |form| %>
<div class="">
<%= form.file_field :files, multiple: true, direct_upload: true, required: true %>
<%= form.label :files, '', class: 'icon ion-ios-cloud-upload' do %>
<span>click the icon to select files</span>
<% end %>
<div class="actions">
<%= form.submit "Upload", class: "btn btn-primary" %>
</div>
</div>
<% end %>
Run Code Online (Sandbox Code Playgroud)
我已尝试按照此处所述访问params[:upload][files]和调用.original_filename它,但出现错误。NoMethodError: undefined method `original_filename' for #<String:0x007fac77fd18c8>
当我检查参数时,该文件确实作为字符串返回,那么我如何获取文件名或如何original_filename开始工作?
ico*_*ast 10
根据ActiveStorage 文档,我发现这对我有用:
file.filename.to_s
Run Code Online (Sandbox Code Playgroud)
就我而言,我有一个模型
has_one_attached :file
Run Code Online (Sandbox Code Playgroud)
OP的情况略有不同,你的情况也可能有所不同,所以要相应地调整。
特洛伊的解决方案对我来说不起作用。我必须添加.to_s来获取文件名而不是ActiveStorage::Filename对象。但我不确定他为什么.blob在那里使用。我不需要它,但也许有一个很好的理由。
| 归档时间: |
|
| 查看次数: |
5129 次 |
| 最近记录: |