1

I've been struggling with this for a couple of hours now. When using carrierwave_direct's direct_upload_form_for in my view, it returns me this error: enter image description here

FileUploader Carrierwave Class:

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

ManualFile Model:

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

My View:

<%= direct_upload_form_for @uploader do |f| %>
  <%= f.file_field :file %>
  <%= f.submit %>
<% end %>

I can't understand what I'm doing wrong. I tried to follow this railscast. I'm using Ruby 1.9.3, Rails 3.2.3, Mongoid 3 with carrierwave gems pointing to github master.

Sheharyar
  • 73,588
  • 21
  • 168
  • 215

1 Answers1

2

Apparently direct_upload_form_for works best with ActiveRecord. To make it work (or at least not crash) with Mongoid, I added the following lines to my file uploader.

include ActiveModel::Conversion
 extend ActiveModel::Naming

So in your case :

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

    include ActiveModel::Conversion
    extend ActiveModel::Naming
end
Matt
  • 74,352
  • 26
  • 153
  • 180
Brice Durand
  • 551
  • 5
  • 7