link_to文件名,包含文件类型的缩略图

时间:2014-01-21 18:10:44

标签: ruby-on-rails ruby ruby-on-rails-3 thumbnails file-type

Ruby on Rails 3.2,我有一个按basename显示文件的表。我想在文件类型的名称旁边显示一个缩略图。因此,如果它是一个pdf文件,我会显示一个小图像,表明它是一个pdf文件。文件显示文件类型,但我想要一个图像,以便更容易挑选。

这是我的表格循环,仅显示文件名。如何根据文件类型添加图像?

<tbody>
  <% @files.each do |file| %>
    <tr>
      <td><%= link_to File.basename(file).upcase, file[/\/.*/] %></td>
    </tr>
  <% end %>
</tbody>

这是正在查看的文件的一个示例。

ENGLISH_FACTSHEET2013_V3.PDF

我希望有宝石或其他东西。

2 个答案:

答案 0 :(得分:1)

一个简单的方法可能是helper,它使用一些正则表达式或一些简单的字符串比较来检查文件扩展名,然后根据类型创建image_tag

def extension_image(file_name)
  if file_name.upcase.include?('.PDF')
    image_tag 'pdf.png'
  elsif file_name.upcase.include?('.JPG')
    ...
  ...
end

然后在你看来:

<td>
  <%= extension_image(File.basename(file)) %>
  <%= link_to File.basename(file).upcase, file[/\/.*/] %>
</td> 

答案 1 :(得分:0)

尝试使用:

file.content_type

它应该返回类似“application / pdf”

的内容