Rails 4,NiceEdit,Carrierwave.上传请求时我应该返回什么



我正在尝试使用NicEdit html编辑器配置Rails4。所以我下载了nicEdit-latest.js,并用rails应用程序正确设置了它。一切正常,除了上传图片到自己的服务器。

我将nicEdit-latest.js中的上传url更改为

 {nicURI:"http://myserver.com:3000/upload/get_image",...}

然后我用getimage_action创建了上传控制器。

class UploadController < ApplicationController 
protect_from_forgery with: :null_session #without it controller rises an error
  def get_image
   picture = Picture.new
   picture.image = params[:image]
   picture.save
   render :text => picture.image.url #?
  end
end

我配置了carrierwave宝石并创建了用于存储图像的模型。

class Picture < ActiveRecord::Base
  mount_uploader :image,PictureUploader
end

我尝试在控制台中使用pry-gem进行游戏,并使用等代码成功保存上传的图像

picture.image = params[:image]

但我还是收到了"上传图片失败"的消息。我知道,客户端js正在等待某种响应。但是我不知道它应该是什么。请帮帮我。

上传图像后,用响应

render json: { upload: { links: { original: @image.image_url } } }

要了解原因,请在NicEdit下载页面上下载未压缩版本,并检查行:

1419..1425-当上传完成并收到JSON响应时,它会得到一个"upload"键并调用onUploaded函数

xhr.onload = function() {
      try {
        var res = JSON.parse(xhr.responseText);
      } catch(e) {
        return this.onError();
      }
      this.onUploaded(res.upload);
....

1443..1445-在onUploaded函数上,导航到键内部对象键"链接",属性"original

  onUploaded : function(options) {
    this.removePane();
    var src = options.links.original;
    if(!this.im) {
      this.ne.selectedInstance.restoreRng();
      var tmp = 'javascript:nicImTemp();';
      this.ne.nicCommand("insertImage", src);
      this.im = this.findElm('IMG','src', src);
   }
...

ps。我指的是版本0.9 r24

相关内容

  • 没有找到相关文章

最新更新