1

私はRailsをまったく使用したことがなく、ディレクトリ内の各ファイルタイプに独自のアイコンを付けようとしていますが、表示できるのは1つだけです。助けてください。これが私がこれまでに持っているものです。

コントローラ:

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" %>

filetype = [".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 

includeが配列でどのように機能するかを確認してください。

于 2012-09-11T09:30:53.630 に答える