6

I need a plugin for "Upload Videos" in a rails application.

Can anyone give me an idea on how to do it?

Aditya Korti
  • 692
  • 2
  • 12
  • 28
maxiperez
  • 1,470
  • 2
  • 20
  • 40

3 Answers3

16

You can also use carrierwave gem

  • Add in your Gemfile: gem 'carrierwave'

    Run bundle install

  • Create an uploader for uploading video using carrierwave generator.

    rails g uploader video

  • It creates file video_uploader.rb in uploaders directory

  • Create a migration in model where you want attach the video or image, be careful with the migration name it should be like add_{column}_to_{model}

    rails g migration add_video_to_post video:string

  • Migrate database

    Run rake db:migrate

  • Add uploader to the model

    class Post < ActiveRecord::Base
          mount_uploader :video, VideoUploader  
    end
    
  • Add video parameter in PostController

    class PostController < ApplicationController
          .
          . 
          .
          def post_params
              params.require(:post).permit(:name,:video)
          end
    end
    
  • Add file attachment field in _forml.html.erb which is in views/posts

    <%=f.file_field :video%>
    
  • To view/stream the video

    <% @posts.each do |post|%>
        <%= post.name %>
        <%= video_tag post.video_url.to_s :controls =>true %>
    <%end%>
    

for more information carrierwave gem https://github.com/carrierwaveuploader/carrierwave and video tutorial http://railscasts.com/episodes/253-carrierwave-file-uploads

Marco Sanfilippo
  • 293
  • 3
  • 19
Sujan Thakare
  • 882
  • 1
  • 10
  • 27
  • While this link may answer the question, it is better to include the essential parts of the answer here and provide the link for reference. Link-only answers can become invalid if the linked page changes. – nKn Mar 21 '14 at 18:19
  • good solutions, working fine with carrierwave, I was thinking other solutions – AMIC MING Jul 02 '14 at 01:05
6

Even more specific, I created a Rails gem that works specifically with videos: https://rubygems.org/gems/paperclip-ffmpeg

Omar Ali
  • 8,467
  • 4
  • 33
  • 58
1

Try paperclip gem, very popular for this purpose

megas
  • 21,401
  • 12
  • 79
  • 130