使用 angularjs 和 rails 上传 4

Upload with angularjs and rails 4

我想用我的 post 上传插图图像,我已经安装了 carrierwwave 和 angularjs-file-upload 但它不起作用

%form.edit-user{:role => "form", :multipart => "true"}
    [..another field of my post..]
%input{:type => "file", :name => "image", "nv-file-select"=>"", "uploader"=>"uploader"}

我已经将此代码以我的形式写入我的载波 class :

class ImageUploader < CarrierWave::Uploader::Base
  storage :file

  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end

  def extension_white_list
    %w(jpg jpeg gif png)
  end
end

我的模特:

class Recette < ActiveRecord::Base
   mount_uploader :image, ImageUploader
end

和我的控制器:

def create
    @recette = Recette.new(params.require(:recette).permit(:name,:instructions))
    @recette.image = params[:image]
    @recette.save
    render 'show', status: 201
  end

我已将模块加载到我的应用程序中 angular 并将其添加到我的控制器中:

$scope.uploader = new FileUploader({url: '/recettes/new'}, {alias: 'image'});

我使用 jbuilder gem 和我的 _recette.json.jbuilder :

json.(recette, :id, :name, :instructions, :image)

感谢您的帮助

已解决:

$scope.uploader = new FileUploader({url: '/recettes/new'}, {alias: 'image', formData: 'Your Data'});

您需要在 'formData' 对象中指定您的所有数据将随上传一起发送。

Refer to documentation