1

我对 Rails 完全陌生,我试图让目录中的每个文件类型都有自己的图标,我只能让它显示一个,请帮忙?这是我到目前为止所拥有的。

控制器:

class DocsController < ApplicationController
 def port
   @files = Dir.glob("public/folder/*")

   filetype = [".pdf", ".txt"]

   if filetype.include? ".pdf"
    @extension = "pdf.png"
   elsif filetype.include? ".txt"
    @extension = "text.png"
   else
    @extension = "folder.png"
   end
 end
end

看法:

<% @files.each do |file| %>
<div class="filediv">
    <%= image_tag @extension, :size => "150x150" %>
    <p><%= file.gsub("public/folder/", "") %></p>
</div>
<% end %>

这导致所有内容都有pdf图标,有人可以告诉我我做错了什么吗?

谢谢

4

1 回答 1

1

我认为您需要添加辅助方法

def extension_image(file)
  ext =File.extname(file)
  if ext==".pdf"
    "pdf.png"
  elsif ext == ".txt"
   "text.png"
  else
    "folder.png"
  end
end


 <%= image_tag extension_image(file), :size => "150x150" %>

文件类型 = [".pdf", ".txt"]

删除此代码。

if filetype.include? ".pdf"
    @extension = "pdf.png"
   elsif filetype.include? ".txt"
    @extension = "text.png"
   else
    @extension = "folder.png"
   end
end

现在为什么总是显示pdf扩展名很简单

[1,2,3].include?(1)  it's always true so no further checking 

查看包含如何在数组中工作。

于 2012-09-11T09:30:53.630 回答