上传视频功能

dev_video
daiao 5 years ago
parent d71c181d12
commit 8914a41ac6

@ -1,6 +1,7 @@
class CoursesController < ApplicationController
include MessagesHelper
include ExportHelper
include CustomSortable
# model validation error
rescue_from ActiveRecord::RecordInvalid do |ex|
@ -100,6 +101,13 @@ class CoursesController < ApplicationController
@courses = @courses.preload(:school, :none_hidden_course_modules, teacher: :user_extension)
end
def course_videos
videos = @course.videos
videos = custom_sort(videos, params[:sort_by], params[:sort_direction])
@count = videos.count
@videos = paginate videos
end
def visits_plus_one
new_visits = @course.visits + 1
@course.update_visits(new_visits)

@ -65,6 +65,8 @@ module CoursesHelper
"/courses/#{course.id}/course_groups"
when "statistics"
"/courses/#{course.id}/statistics"
when "video"
"/courses/#{course.id}/course_videos"
end
end

@ -81,6 +81,10 @@ class Course < ApplicationRecord
# 老版的members弃用 现用course_members
has_many :members
# 视频
has_many :course_videos, dependent: :destroy
has_many :videos, through: :course_videos
validate :validate_sensitive_string
scope :hidden, ->(is_hidden = true) { where(is_hidden: is_hidden) }

@ -0,0 +1,4 @@
class CourseVideo < ApplicationRecord
belongs_to :course
belongs_to :video
end

@ -4,6 +4,7 @@ class Video < ApplicationRecord
belongs_to :user
has_many :video_applies, dependent: :destroy
has_many :course_videos, dependent: :destroy
has_one :processing_video_apply, -> { where(status: :pending) }, class_name: 'VideoApply'
aasm(:status) do

@ -27,6 +27,11 @@ class Videos::BatchPublishService < ApplicationService
video.video_applies.create!
video_ids << video.id
# 如果是课堂上传则创建课堂记录
if params[:course_id].present?
video.course_videos.create!(course_id: params[:course_id])
end
end
end

@ -0,0 +1,2 @@
json.count @count
json.videos @videos, partial: 'users/videos/video', as: :video

@ -515,6 +515,7 @@ Rails.application.routes.draw do
get 'work_score'
get 'act_score'
get 'statistics'
get 'course_videos'
post :inform_up
post :inform_down
get :calculate_all_shixun_scores

@ -0,0 +1,9 @@
class CreateCourseVideos < ActiveRecord::Migration[5.2]
def change
create_table :course_videos do |t|
t.references :course
t.references :video
t.timestamps
end
end
end

@ -0,0 +1,5 @@
require 'rails_helper'
RSpec.describe CourseVideo, type: :model do
pending "add some examples to (or delete) #{__FILE__}"
end
Loading…
Cancel
Save