2017-12-12 16 views
1

ユーザーがウェブサイトにアクセスするか、ホームページを更新するたびにランダム動画を配信しようとしています。これにより、毎回違った見た目とさわやかに見えるようになります。RoR - ホームページで再生するランダム再生動画

home.htmlため

現在のコード

<div class="home-banner basic-banner static video-container hidden-xs hidden-sm"> 

    <%= @random_video %><%= video_tag "test-3.mp4, test-4.mp4", autoplay: true, loop: true, muted: true, class: "video" %> 
    <div class="container"> 
     <div class="title text-center"> 
      <h1 class="border border-color-white border-thick">PARADISE<br>BELOW</h1> 
     </div> 
    </div> 
</div> 

ビデオ/アプリ/資産/ビデオから来ている /

静的コントローラ

def home 
    @tour_category = TourCategory.all 
     @videos = ["app/assets/videos"] 
     @random_no = rand(2) 
     @random_video = @videos[@random_no] 
    end 

ランダム関数の作品ただし、ロード時または更新時にビデオのタイトルのみが表示されます。例:test-3.mp4、refresh:test-4.mp4

これで、タイトルを表示するのではなく、正しく再生することができます。

は助けをこれを見て:助けをhttp://www.java2s.com/Code/Ruby/Rails/Displayrandomimage.htm

感謝を。

答えて

1

あなたのコードでは、ソリューションに簡単ですが、あなたは3点を修正する必要があります。

  • あなたが考えるほどあなたのランダムロジックが動作しません。 @videos文字列の配列"app/assets/videos"、ファイルの配列ではありません
  • ランダムに編集したビデオにはvideo_tagを使用してください。 "test-3.mp4, test-4.mp4"という文字列を使っているので、間違ったビデオHTMLが生成されたのです。
  • video_tagにはファイルではなくビデオファイル名が必要なので、ランダムロジックでも解決できませんでした。
結果を達成するために、

  • あなたのランダムロジックは

    videos = Dir.glob("#{Rails.root}/app/assets/videos/*.mp4") 
    random_video_path = videos.sample 
    @random_video_name = File.basename(random_video_path) 
    
  • のようになります。そして、あなたのビューでそれを使用

    <%= video_tag @random_video_name, autoplay: true, loop: true, muted: true, class: "video" %> 
    

Railsは正しいビデオURLを生成するなど、残りの作業を行います。

+0

これは完璧に機能しました。 –

関連する問題