我正在制作Ruby on Rails应用程序,并试图允许通过应用程序上传视频文件。使用paperclip-av-transcoder的回形针视频附件错误
我使用paperclip gem来处理文件,paperclip-av-transcoder gem(如建议)处理转码的附件。我还安装了aws-sdk gem,但目前这并不相关,因为我甚至无法在本地系统上运行上传。
我已经按照所有说明准备应用程序来处理视频上传:我安装了必要的宝石,为视频模型创建了实际的回形针(我命名回形针“电影”),进行迁移,并将该关联添加到我的视频模型本身。我还将视频控制器参数中的film属性列入了白名单,并且在我的新视频表单中有正确的字段:film。
当我运行我的本地服务器时,我会转到我的视频#新页面并填写表单,将文件附加到:film并提交表单。它需要大约10秒,直到它加载以下错误:
Av::UnableToDetect in VideosController#create
Unable to detect any supported library
Extracted source (around line #10):
@video = Video.new(video_params)
我不知道这里发生了什么。当我看到其他人有完全相同的错误消息“无法检测到任何支持的库”的人时,他们总是忘记运行回形针迁移或类似的东西。我已经遵循了所有必要的步骤。
这里是我的:电影中我Video.rb模型相关的代码
has_attached_file :film, styles: {
:medium => {
:geometry => "640x480",
:format => 'mp4'
},
:thumb => { :geometry => "160x120", :format => 'jpeg', :time => 10}
}, :processors => [:transcoder]
validates_attachment_content_type :film, content_type: /\Avideo\/.*\Z/
,这里是我的坚强参数在我videos_controller
def video_params
params.require(:video).permit(:title, :description, :film, :preview_image,
award_attributes: [:id, :title, :body, :award_image])
end
这里是相关数据库架构,我的视频模式。预览图像是一个独立的回形针(它是一个图像),我已经有几个星期了,它工作得很好。
create_table "videos", force: :cascade do |t|
t.string "title"
t.string "description"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "preview_image_file_name"
t.string "preview_image_content_type"
t.integer "preview_image_file_size"
t.datetime "preview_image_updated_at"
t.string "film_file_name"
t.string "film_content_type"
t.integer "film_file_size"
t.datetime "film_updated_at"
end
我也有一种感觉,它可能是与我的宝石,这是我的Gemfile:
gem 'paperclip', :git=> 'https://github.com/thoughtbot/paperclip', :ref => '523bd46c768226893f23889079a7aa9c73b57d68'
gem 'aws-sdk'
gem 'paperclip-av-transcoder'
我已经只用简单的试了一下“曲别针”的宝石,用没有参考git。它仍然不起作用
在此先感谢您为我提供的任何帮助!