【问题标题】:Form to Upload Images using Carrierwave使用 Carrierwave 上传图像的表格
【发布时间】:2013-12-04 02:32:06
【问题描述】:

我刚刚创建了一个简单的 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, :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

但是,每当我尝试实际上传时,都会出错,说我有太多参数:

我试过了:

  1. 删除 :html => {:multipart => true} 部分,因为它也是默认的。错误仍然出现。
  2. 用我的@user 模型替换了@video。它没有出错!这对我正在尝试做的事情没有任何意义。我需要它来为我的视频模型工作,但为什么它不会在用户模型中出错?

我有点不知道从这里去哪里。这似乎是我的视频模型的某种问题,因为它不会与用户出错。有人有什么想法吗?

谢谢!!!

【问题讨论】:

  • 视频是否属于用户?
  • 在这种情况下,是的。该视频是通过用户访问的。

标签: ruby-on-rails carrierwave


【解决方案1】:

好的,也许可以尝试在您的表单中使用以下视频属于用户。

<% form_for [@user, @video] do |f| %>

它可能不起作用,但您可能有一个嵌套资源可能会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-27
    • 2015-11-29
    • 2014-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多