【问题标题】:Refile, how to show filename for multiple uploadsRefile,如何显示多个上传的文件名
【发布时间】:2016-03-02 10:01:31
【问题描述】:

我正在尝试使用 Refile gem 实现多个文件上传。

用户必须能够将多个文档上传到锦标赛模型。

在展示模板中,我尝试像这样读出所有上传的文件:

<% @tournament.documents.each do |doc| %>                                                                                     
  <%= link_to @tournament.document_filename, attachment_url(doc, :file) %>
<% end %>

但这给了我一个很长的视图链接,像这样:

    /attachments/c569801bbd2a2ca51350ca326ec57e18d0d318e9/store/ad644cadeda8ee5197bc2bb8a66cc966f5b4b74fad7bbccd2ab798a10c98/file

有没有办法输出上传文件的文件名?

非常感谢您的帮助,

安东尼

【问题讨论】:

  • 默认情况下,链接末尾的文件名将只是附件字段的名称,因此在本例中为文件。然而,这可以命名为任何你想要的。 attachment_url 接受文件名和格式参数:Refile.attachment_url(doc, :file, filename: @tournament.document_filename, format: 'docx') 该文件存储在 ad64ca 下...所以不管你给它取什么名字都没有关系。另请查看github.com/refile/refile#additional-metadata 了解有关保存元数据的信息
  • 嗨,亚当,感谢您提供的信息

标签: ruby-on-rails refile


【解决方案1】:

一个更简单的解决方案是在创建记录时存储文件名。将这些列(文件名、大小、内容类型)添加到您的模型中,Refile 将尝试在创建时自动填充它们。

class StoreMetadata < ActiveRecord::Migration
  def change
    add_column :users, :profile_image_filename, :string
    add_column :users, :profile_image_size, :integer
    add_column :users, :profile_image_content_type, :string
  end
end

【讨论】:

    猜你喜欢
    • 2015-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-27
    • 1970-01-01
    • 1970-01-01
    • 2014-11-22
    相关资源
    最近更新 更多