2016-03-02 76 views
2

我试图用Refile gem实现多个文件上传。重写,如何显示多个上传的文件名

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

在节目模板,我试着读出所有上传的文件是这样的:

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

但是这给了我的观点很长的链接,这样的事情:

/attachments/c569801bbd2a2ca51350ca326ec57e18d0d318e9/store/ad644cadeda8ee5197bc2bb8a66cc966f5b4b74fad7bbccd2ab798a10c98/file 

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

非常感谢您的帮助,

安东尼

+1

默认情况下,链接末尾的文件名将只是附件字段的名称,所以在这种情况下是文件。然而,这可以被命名为任何你想要的。 attachment_url接受文件名和格式参数:'Refile.attachment_url(doc,:文件,文件名:@ tournament.document_filename,格式:'docx')'该文件存储在ad64ca下...所以无所谓命名它。另请参阅https://github.com/refile/refile#additional-metadata获取有关保存元数据的信息 –

+0

嗨,Adam,感谢您提供的信息 – Toontje

回答

0

一个更简单的解决方案是存储文件名,同时创造了纪录。将这些列(文件名,大小,content_type)添加到您的模型中,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