今回、初投稿させていただきます。
少し、見にくかったりしてもご了承お願いします。
今回は、railsで動画アップロード機能の備忘録となっております。
個人的にFFmpegを使用した動画アップロードが分かりにくかったので、なるべく分かりやすく説明できればと思います。
#環境
Ruby 2.6.5
Rails 6.0.3.2
#早速取り掛かっていく
ターミナル
rails new RailsApp
ターミナルでRailsAppを作ります。
Gemfile
gem 'carrierwave'
gem 'mini_magick'
Gemfileに追記
ターミナル
rails bundle install
ターミナルでbundle installします。
ターミナル
rails g uploader video
rails g scaffold post video:string
ターミナルでuploaderとscaffoldを作成
ターミナル
rails db:migrate
忘れずにマイグレーション
app/models/post.rb
mount_uploader :video, VideoUploader
post.rbに追記
app/uploaders/video_uploader.rb
def extension_whitelist
%w(jpg jpeg gif png MOV wmv mp4)
end
38行目からコメントを外して、追記
views/posts/_form.html.erb
<div class="field">
<%= form.label :video %>
<%= form.file_field :video, :accept => 'video/*' %>
</div>
text.fieldになっていると思うので、file.fieldに書き換える。
app/views/posts/show.html.erb
<p>
<%= link_to @post.video_url.to_s do %>
<%= video_tag(@post.video.to_s) %>
<% end %>
</p>
<%= @post.video %>になっていると思うので書き換えます。
<%= link_to @post.video_url.to_s do %>を書かないと動画をクリックしても再生されません。
#ありがとうございました
動画アップロードに悪戦苦闘したので、皆さんが簡単にできたら幸いです。