Ruby on rails Rails 4,NiceEdit,Carrierwave。上传请求时我应该返回什么?
我正在尝试使用NicEdit html编辑器配置Rails 4。 所以我下载了nicEdit-latest.js,并用我的rails应用程序正确地设置了它。 一切正常,除了上传图片到自己的服务器 我将nicEdit-latest.js中的上传url更改为Ruby on rails Rails 4,NiceEdit,Carrierwave。上传请求时我应该返回什么?,ruby-on-rails,carrierwave,nicedit,Ruby On Rails,Carrierwave,Nicedit,我正在尝试使用NicEdit html编辑器配置Rails 4。 所以我下载了nicEdit-latest.js,并用我的rails应用程序正确地设置了它。 一切正常,除了上传图片到自己的服务器 我将nicEdit-latest.js中的上传url更改为 {nicURI:"http://myserver.com:3000/upload/get_image",...} 然后我用get image_操作创建了upload控制器 class UploadController < Applic
{nicURI:"http://myserver.com:3000/upload/get_image",...}
然后我用get image_操作创建了upload控制器
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
但我还是收到了“上传图像失败”的消息。我理解,客户端js正在等待某种响应。但我不知道应该是什么。请帮助我。上传图像后,请回复:
render json: { upload: { links: { original: @image.image_url } } }
要了解原因,请在上下载未压缩版本并检查以下行:
1419..1425-当上传完成并收到JSON响应时,它会得到一个“upload”键并调用onUploaded函数
1443..1445-在未加载的函数上,导航到键内部对象键“链接”,属性“原始”
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);
}
...
注:我指的是版本0.9 r24
render json: { upload: { links: { original: @image.image_url } } }
xhr.onload = function() {
try {
var res = JSON.parse(xhr.responseText);
} catch(e) {
return this.onError();
}
this.onUploaded(res.upload);
....
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);
}
...