Ruby on rails 通过CKeditor gem将Ajax上传到Rails kiling会话

Ruby on rails 通过CKeditor gem将Ajax上传到Rails kiling会话,ruby-on-rails,session,file-upload,ckeditor,csrf,Ruby On Rails,Session,File Upload,Ckeditor,Csrf,我正在Rails 3.2.13/Backbone应用程序中使用CKeditor Gem 主干网允许用户通过API完美地更新他们的信息。但当我试图通过CKeditor上传图片时,它会终止我的会话,并说我无权进行更改。因此,API拒绝了保存,并抛出了一个未经授权的401 rescue_from CanCan::AccessDenied do |exception| render :json => Scientist.includes(:profile, :titles, :websites

我正在Rails 3.2.13/Backbone应用程序中使用CKeditor Gem

主干网允许用户通过API完美地更新他们的信息。但当我试图通过CKeditor上传图片时,它会终止我的会话,并说我无权进行更改。因此,API拒绝了保存,并抛出了一个未经授权的401

rescue_from CanCan::AccessDenied do |exception|
  render :json => Scientist.includes(:profile, :titles, :websites)
  .find(params[:id]), :status => :unauthorized
end
使用CanCan w/rolify。不,我没有将gem配置为使用授权。然而,当我配置它时,使用CanCan,它仍然失败,所以这肯定是一个会话问题

我已经检查了标题,X-CSRF-Token在那里,并且它是正确的(至少它与meta标记中显示的内容相匹配)。我想我错过了一些东西。。。我一直在浏览《sessions rails指南》,想知道它为什么会被杀死,但仍然没有任何线索

我发现了这个问题

这个答案的要点是使用

skip\u-before\u-filter:verify\u-authenticity\u-token,:only=>[:new\u-from\u-disk]

但如果我能阻止的话,我宁愿不让自己对CSRF敞开大门。我也不确定当gem为我处理控制器和模型时,我会在哪里使用这一行

如果需要提供任何其他信息,请告诉我。

我也会遇到同样的错误。 ckeditor控制器对此csrf保护不做任何操作。 因此,最好的方法是跳过它,除非您想更改ckeditor的默认上传程序html和js代码

霉菌代码:

class Ckeditor::ApplicationController < ::ApplicationController
...
skip_before_filter :verify_authenticity_token
...
end
类Ckeditor::ApplicationController<::ApplicationController
...
在\u筛选器之前跳过\u:验证\u真实性\u令牌
...
结束