【问题标题】:Carrierwave not saving fileCarrierwave 不保存文件
【发布时间】:2013-12-06 05:02:11
【问题描述】:

我有这个应用程序可以通过一个小的上传表单上传视频的手写翻译。然后我想将它附加到视频中。

这是我的模型:

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 时,它只是出现了我的默认路径。有人对尝试什么有任何建议吗?我显然对carrierwave很陌生...

谢谢!!!

【问题讨论】:

    标签: ruby-on-rails carrierwave


    【解决方案1】:

    原来是我设置文件保存位置的问题。我应该把它发送到我的 public/ 目录。

    【讨论】:

      猜你喜欢
      • 2017-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-02
      • 2013-09-26
      • 1970-01-01
      相关资源
      最近更新 更多