Некоторые браузеры (Safari
) отправляют Accept */*
, который не отображается в формате html, и по какой-то причине (в алфавитном порядке?) Отображается в формате js. Затем включается protect_from_forgery, и так как этот запрос не имеет X-Requested-With (зачем это? Это обычный get), браузер возвращается с ответом 422.
Технически это не проблема с Rails, а с браузером,
Вы можете избавиться от этого, изменив блок respond_to do |format|... end
(я думаю, в создании и обновлении действия, из которого он был перенаправлен, чтобы показать действие.) Строка комментария для format.js
или format.json
Или, в контроллере:
before_action do
if request.format == Mime::ALL
request.format = request.xhr? ? :js : :html
end
end