😺
Rails7へアップグレード時に気をつけること
csrf.js
function set_csrftoken() {
$.ajaxPrefilter(function (options, originalOptions, jqXHR) {
if (!options.crossDomain) {
const token = $('meta[name="csrf-token"]').attr('content');
if (token) {
return jqXHR.setRequestHeader('X-CSRF-Token', token);
}
}
});
}
function ajax() {
set_csrftoken()
}
app/assets/javascripts/csrf.js
//= require_tree .
app/assets/javascripts/application.js
<%= csrf_meta_tag %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
app/views/layouts/application.html.erb
Rails6からRails7にアップグレードしたあと、
該当プロジェクトを起動時に発生するエラーで、
CSRF対策またはCSRFトークンに悩まされているときに使います。
この対処は、「422 Unprocessable Entity」のようなCSRF対策を促す部分で、
Rails6からRails7アップグレード後、Rails7として起動時の不具合を解消します。
例として、参考にどうぞ。どうしようもないとき、対処するときに使ってみてはいかがですか。
Discussion