Rails 3.2.13/Backbone アプリで CKeditor Gem を使用しています
Backbone を使用すると、ユーザーは API を介して自分の情報を完全に更新できます。しかし、CKeditor を介して画像をアップロードしようとするとすぐに、セッションが強制終了され、その変更を行う権限がないと表示されます。そのため、API は保存を拒否し、当然のことながら 401 Unauthorized を吐き出します。
rescue_from CanCan::AccessDenied do |exception|
render :json => Scientist.includes(:profile, :titles, :websites)
.find(params[:id]), :status => :unauthorized
end
CanCan を rolify で使用する。いいえ、承認を使用するように宝石を構成しませんでした。ただし、CanCan を使用するように構成したときは、まだ失敗しているため、間違いなくセッションの問題です。
ヘッダーを確認したところ、X-CSRF-トークンがあり、正しいものです (少なくとも、メタ タグに表示されているものと一致します)。ここで何かが欠けていると思います...セッションレールガイドを調べて、なぜそれが殺されているのかを調べましたが、まだ手がかりはありません.
この質問を見つけましたRails 3.1 and CKEditor w Carrierwave, cannot upload
その答えの要点は使用でした
skip_before_filter :verify_authenticity_token, :only => [:new_from_disk]
しかし、CSRFを防ぐことができれば、CSRFにさらされることはありません。また、宝石がコントローラーとモデルを処理しているときに、この行をどこで使用するかわかりません。
追加情報を提供する必要がある場合はお知らせください。