2017-12-12 6 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, 새로 고침 : 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" %> 
    

레일즈는 올바른 비디오 URL을 생성하는 것을 포함하여 나머지 작업을 처리합니다.

+0

완벽하게 작동했습니다. - 많은 감사합니다. –