Ruby on Rails: проблема с получением CKeditor для загрузки изображений - PullRequest
1 голос
/ 03 августа 2010

Когда я выбираю файл и нажимаю «Отправить его на сервер»

Я получаю сообщение об ошибке:

ActionController::InvalidAuthenticityToken in MediasController#new_from_disk

Parameters:

{"upload"=>#<File:/var/folders/Fr/FrWbhcV1HdGpFgn7Lh7OhU+++TI/-Tmp-/RackMultipart20100802-4884-olu0e5-0>,
 "CKEditorFuncNum"=>"42",
 "langCode"=>"en",
 "CKEditor"=>"object_content_body"}

из моего понимания загрузчик ckeditor отправляет мое действие ruby ​​в файли я справлюсь тогда и там.Поэтому мне не нужно представление, связанное с моим действием new_from_disk (которое в настоящее время ничего не делает).

Вот документация для загрузки / просмотра материалов, которые вы уже загрузили.Ничто из этого не помогло мне.http://docs.cksource.com/CKEditor_3.x/Developers_Guide/File_Browser_(Uploader)/Custom_File_Browser

У кого-нибудь есть намеки / руководства?

1 Ответ

0 голосов
/ 04 августа 2010

По умолчанию Rails ожидает отправки маркера подлинности пользователя - и выдает исключение, если это не так. Это для защиты от CSRF (подробнее на Rails API )

Всякий раз, когда вы используете form_for, Rails добавит этот токен аутентификации в качестве скрытого ввода для отправки с формой.

Поскольку вы не используете form_for (или любые его производные), вам необходимо явно добавить этот токен в параметры, которые вы отправляете. Вы можете получить доступ к значению токена, используя #{form_authenticity_token}. Как вы это сделаете, будет зависеть от API CKeditor.

Кроме того, вы можете отключить проверку токенов для каждого отдельного действия ( не рекомендуется!) Примерно так:

class MediasController < ApplicationController
  skip_before_filter :verify_authenticity_token, :only => [:new_from_disk]

  ...
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...