2015-03-18 5 views
0

Использование рельсов 4, я представляю форму ajax с помощью remote: true в for_for tag. У меня есть поле для загрузки изображения в форму, для загрузки изображения используется папка.Rails 4, отправив форму ajax и загружая изображение с помощью paperclip, дает ошибку: InvalidAuthenticityToken

Если я отправлю форму без загрузки изображения, все будет хорошо. Но если я загрузить изображение, а затем представить ту же форму, я получаю следующее сообщение об ошибке:

ActionController::InvalidAuthenticityToken(ActionController::InvalidAuthenticityToken) 

Я попытался с помощью «authenticity_token: истинное» следующим образом:

<%= form_for @user, :remote => true, authenticity_token: true, :html=>{:class=>"form_validation ", :multipart=>true } do |f| %> 

Это выше фрагмент кода делает не дать мне ошибку InvalidAuthenticityToken, но форма отправляется html, а не js (ajax). Я хочу отправить форму ajax.

Это проблема CSRF или любая другая проблема, связанная с скрепкой? Может ли кто-нибудь помочь мне с этой проблемой.

ответ

0

Вы не можете напрямую загружать файлы с помощью ajax, вы должны использовать плагины jQuery Form или jQuery-File-Upload, чтобы сделать это возможным. Вам нужно пройти через их документацию. Взгляните на этот вопрос

form_tag with remote: true does not make an ajax request

+1

Эй спасибо за ответ, но я уже есть gem 'remotipart' в моем файле gem. Ссылка, которую вы указали выше, имеет решение для пользователя remotipart gem, я точно так же использую. Теперь ошибка не наступает, но для нее отправляется HTML (обработка по UserController # create as HTML), а не JS (ajax) – Kalyani

Смежные вопросы