😺

Rails7へアップグレード時に気をつけること

2024/01/12に公開

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として起動時の不具合を解消します。

例として、参考にどうぞ。どうしようもないとき、対処するときに使ってみてはいかがですか。

GitHubで編集を提案

Discussion