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