Carrierwave_Direct的direct_upload_form_for为FileUploader返回未定义的方法`model_name’:Class

我一直在努力解决这个问题几个小时了。 在我的视图中使用carrierwave_direct的direct_upload_form_for时,它会返回以下错误: 在此处输入图像描述

FileUploader Carrierwave类:

 class FileUploader < CarrierWave::Uploader::Base include CarrierWaveDirect::Uploader end 

手动文件模型:

 class ManualFile include Mongoid::Document mount_uploader :file, FileUploader field :name, :type => String end 

UploadController:

 class UploadController < ApplicationController def manual_new @uploader = ManualFile.new.file @uploader.success_action_redirect = upload_edit_path end def manual_edit @myfile = ManualFile.new(key: params[:key]) end end 

我的看法:

     

我无法理解我做错了什么。 我试图跟随这个railscast 。 我正在使用Ruby 1.9.3,Rails 3.2.3,Mongoid 3和载波波gem指向github master。

显然, direct_upload_form_for最适合ActiveRecord。 为了使它与Mongoid一起工作(或至少不崩溃),我在文件上传器中添加了以下行。

 include ActiveModel::Conversion extend ActiveModel::Naming 

所以在你的情况下:

 class FileUploader < CarrierWave::Uploader::Base include CarrierWaveDirect::Uploader include ActiveModel::Conversion extend ActiveModel::Naming end