RoR InvalidAuthenticityToken с прямой загрузкой Active Storage - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь использовать rails active storage для прямой загрузки в корзину Amazon s3.Однако давайте относимся к этому как к прямой загрузке, когда носителем является локальный диск, потому что я тоже не могу заставить это работать.

Я не могу сделать это без ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken): ошибок.

Я точно следовал этому руководству: https://guides.rubyonrails.org/active_storage_overview.html#direct-uploads

Я даже зашел так далеко, что отключил широкое применение csrf с помощью этой строки кода в моем application_controller.rb skip_before_action :verify_authenticity_token

Это происходит только тогда, когда у меня есть direct_upload: true в моей форме.

Вот моя форма:

<%= form_with url: messages_path do |form| %> <%= form.label 'Upload' %> <%= form.file_field :audio_message, class: 'form-control', direct_upload: true, :required => true%> <%= form.submit 'Upload file', class: 'form-control' %> <% end %>

1 Ответ

0 голосов
/ 14 февраля 2019

Похоже, ajax submit не поднял токен.Вы можете попробовать любой из этих способов:

  1. Скажите форму для встраивания токена <%= form_with url: messages_path, authenticity_token: true...%>

  2. add config.action_view.embed_authenticity_token_in_remote_forms = true в конфигурации

Посмотрите, помогут ли они вам.Мое предположение чисто из этого: https://edgeapi.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-form_with

...