Rails引擎ckeditor图片上传导致异常

时间:2018-08-24 10:03:37

标签: ruby-on-rails ckeditor

我创建了一个包含CKEditor的引擎。

在我的虚拟应用程序中,form.cktext_area可以正常工作并且可以正常渲染,但是当我尝试上传图像时,出现以下异常:

Ckeditor :: PicturesController#create中的ActionController :: InvalidAuthenticityToken

这是因为我在引擎内使用CKEditor进而导致了某些身份验证/保护问题吗?

谢谢

2 个答案:

答案 0 :(得分:1)

您必须随请求一起发送csrf令牌,简单的方法是在每个ajax请求中添加csrf令牌:

document.addEventListener('turbolinks:load', function () {
  var csrfToken = document.querySelector('meta[name="csrf-token"]').getAttribute('content')
  if (csrfToken) {
    var obj = XMLHttpRequest.prototype.open;
    XMLHttpRequest.prototype.open = function(){
      var res = obj.apply(this, arguments);
      this.setRequestHeader('X-CSRF-Token', csrfToken);
      return res;
    }
  }
})

答案 1 :(得分:0)

并不是一个真正的答案,但是从我的引擎中删除CKEditor并再次重新添加它解决了这个问题(我想这是我的一些安装/配置问题引起的)。

尽管现在我正面临着新的问题...

NoMethodError (undefined method `gsub' for #<Pathname:/uploads/ckeditor/pictures/6/image.png> Did you mean? sub):

...。如果无法解决,我将作为新问题发布

仅需注意,将csrf令牌添加到每个请求中,但这对我来说没有什么区别。

感谢您的所有帮助和建议!