2017-11-28 15 views
1

現在、データベースとS3を使用してさまざまなファイルを保存できます。ただし、これらのファイルをうまく表示することはできません。ruby​​ on rails:ファイルアップロードとショーファイルについて

以下のコードはshowviewfileコードです。そして私がここでやりたいことは2つあります。

     <div class="listing_content"> 
      <% if @listing.file_content_type == 'video/mp4' then %> 
       <%= video_tag @listing.file, :controls => true, width: "640", height: "360" %> 
      <% elsif @listing.file_content_type == "image/jpg" || "image/jpeg" || "image/png" || "image/gif" then %> 
       <%= image_tag @listing.file, :width => 640, :height => 340 %> 
      <% elsif @listing.file_content_type == 'audio/mpeg' || 'audio/x-mpeg' || 'audio/mp3' || 'audio/x-mp3' || 'audio/mpeg3' || 'audio/x-mpeg3' || 'audio/mpg' || 'audio/x-mpg' || 'audio/x-mpegaudio' then %> 
       <%= audio_tag @listing.file, :controls => true %> 
      <% else %> 
       <%= image_tag @listing.file %> 
      <% end %> 
      </div> 

最初に、各形式の保存ファイルを表示します。 次に、下の画像を参照してください。これは、オーディオファイルが正しく表示されないことを意味します。

enter image description here

だから、私はこれらの問題を解決したいのですが、私はそれを解決する方法がわかりません。どうすれば解決できますか?

モデルファイル

validates_attachment :file, content_type: { content_type: ['audio/mpeg', 'audio/x-mpeg', 'audio/mp3', 'audio/x-mp3', 'audio/mpeg3', 'audio/x-mpeg3', 'audio/mpg', 'audio/x-mpg', 'audio/x-mpegaudio', 'video/mp4', 'text/plain', 'application/msword', 'application/vnd.ms-powerpoint', 'application/pdf', "image/jpg", "image/jpeg", "image/png", "image/gif"] } 

を教えてください!!

+1

ファイルが正しくアップロードされていることを確認できますか?ファイルのアップロードにあなたが使っている宝石もあります。 – Maru

+1

[mcve]を提供できますか?どのファイルをアップロードしているのか、どのようにアップロードしたのか、どのように処理したのか、 'file_content_type'の値は何か分かりません。 –

答えて

0

私はあなたの条件に少なくとも問題を参照してください。 アルファ|| alphaが "true-ish"の場合、betaは単にbetaと評価されます。

['audio/mpeg', 'audio/x-mpeg', 
'audio/mp3', 'audio/x-mp3'].include?(@listing.file_content_type) 

それはあなたの代わりに適切なオーディオファイルを再生する画像を与えている理由は、おそらくのようなものにあなたの条件文を変更してみてください。あなたのファイルがmp4、gif、またはmpegaudioでない限り、あなたはイメージを取得します。

0

アップロードにはどのライブラリを使用しますか?

carrierwave/paperclipの場合は、代わりに@ listing.file.urlをパラメータとして使用しますか?