Rubyでファイル名の拡張子を見つける
概要
私はRailsアプリのファイルアップロード部分に取り組んでいます。ファイルの種類が異なると、アプリによって処理方法が異なります。
特定のファイル拡張子のホワイトリストを作成して、アップロードされたファイルをチェックして、どこに送信するかを確認したいと考えています。ファイル名はすべて文字列です。
ファイル名の文字列の拡張子部分だけを確認する方法が必要です。ファイル名はすべて「some_file_name.some_extension」の形式です。
解決策
irb(main):002:0> accepted_formats = [".txt", ".pdf"]
=> [".txt", ".pdf"]
irb(main):003:0> File.extname("example.pdf") # get the extension
=> ".pdf"
irb(main):004:0> accepted_formats.include? File.extname("example.pdf")
=> true
irb(main):005:0> accepted_formats.include? File.extname("example.txt")
=> true
irb(main):006:0> accepted_formats.include? File.extname("example.png")
=> false