【问题标题】:Carrierwave implementation not working载波实施不起作用
【发布时间】:2013-11-25 05:55:29
【问题描述】:

我刚刚创建了一个简单的 Carrierwave 文件上传系统(通过 http://railscasts.com/episodes/253-carrierwave-file-uploads 的示例)

这是我的模型:

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_for @video.video_id, :html => {:multipart => true} do |f| %>
  <p>
    <%= f.file_field :translation_handwritten %>
  </p>
  <p><%= f.submit :Upload %></p>
<% end %>

这是我的上传者:

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

但是,每当我尝试实际上传时,它都会重定向并适当地发出 Flash 通知,但实际上并未上传到图像。当我打印 @video.translation_handwritten.url 时,它显示 /assets/fallback/default.png 这是我的默认 url。问题可能出在哪里?我一直盯着这个...

谢谢!!!

【问题讨论】:

    标签: ruby-on-rails carrierwave


    【解决方案1】:

    这可能不是你唯一的问题,但你需要改变

    form_for @video.video_id, :html => {:multipart => true} do |f|
    

    form_for @video, :html => {:multipart => true} do |f|
    

    如果这不能解决问题,您应该发布控制器的 create 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      • 2019-10-24
      • 1970-01-01
      • 2015-02-08
      • 2016-07-22
      相关资源
      最近更新 更多