如何在轨道中选择后立即上传带载波的图像?

时间:2014-12-30 15:33:00

标签: ruby-on-rails ajax carrierwave

如何在使用AJAX选择文件后立即将图像文件上传到服务器?有人能告诉我一些例子吗?开头是:

$('.choose_image').on('change', function(){
    // UPLOAD CODE HERE
})

使用PHP我做了:

$.ajax {
    url: 'some.php',
    method: 'POST'
}

但它在Rails中会如何?

涵盖控制器:

def create
    @cover = Cover.create(cover_params)

    if @cover.save
        redirect_to :back
    end
end

def cover_params
    params.require(:cover).permit(:image)
end

封面模特:

mount_uploader :image, CoverUploader

我想在select文件上将文件上传到服务器。我该怎么办?

1 个答案:

答案 0 :(得分:1)

Ruby解决方案与PHP版本非常相似。上传代码保持不变,并且需要为rails应用程序修改ajax请求。

var formData = new FormData(),
    $input = $('#avatar');

formData.append('user[avatar]', $input[0].files[0]);

$.ajax({
  url: this.model.url(),
  data: formData,
  cache: false,
  contentType: false,
  processData: false,
  type: 'PUT'
});

有关详细信息,请查看此tutorial