我刚刚创建了一个简单的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
然而,每当我尝试实际上传时,错误地说我有太多的参数:
我试过了:
我有点迷失在哪里。这似乎与我的视频模型存在某种问题,因为它不会对用户造成错误。有没有人有任何想法?
谢谢!!!
答案 0 :(得分:0)
好吧也许尝试在你的表单中使用以下视频属于用户。
<% form_for [@user, @video] do |f| %>
它可能不起作用,但您可能有一个可能有帮助的嵌套资源。