我有这个应用程序通过一个小上传表单上传手写的视频翻译。然后,我想将其附加到视频中。
这是我的模特:
require 'carrierwave/orm/activerecord'
class Video < ActiveRecord::Base
attr_accessible :course, :qa_complete, :qa_id, :subject, :title,
:translate_complete, :translator_id, :type_complete, :typer_id, :video_id, :due_date, :translation_handwritten
validates :video_id, :presence => true, :uniqueness => true #add uniqueness in db too
mount_uploader :translation_handwritten, TranslationsUploader
end
这是我的表单视图:
=form_tag(:action => 'upload_translation_handwritten', :method => 'post')
.form-group
%label.h4{for: "handwrittenTranslation"} Upload Handwritten Translation
%input#inputFile{name: 'translation', type: "file"}
%button.btn.btn-default{type: "submit"} Upload
这是我的上传者:
class TranslationsUploader < CarrierWave::Uploader::Base
storage :file
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
def default_url
ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_'))
end
def extension_white_list
%w(jpg pdf png)
end
end
在我的控制器中,我尝试设置文件:
def upload_translation_handwritten
@video = Video.find_by_video_id(params[:video_id])
@video.translation_handwritten = params[:translation]
@video.save!
...
end
params [:translation]从表单中获得正确的信息。我已经证实了这一点。当我尝试打印@ video.translation_handwritten.url时,它只是提出了我的默认路径。有没有人有什么建议尝试?我显然对载波很新...
谢谢!!!
答案 0 :(得分:0)
事实证明,我设置要保存的文件的位置存在问题。我应该把它发送到我的公共/目录。