Rails 7 and Devise Issue with Sign Out

This issue is not specifically related to Devise; well it is. Let me explain.

Your old sign out link:

<%= link_to "Sign out", destroy_user_session_path, method: delete %>

That is not going to work in Rails 7 due to turbo streams.

You have to change it to:

<%= link_to "Sign out", destroy_user_session_path, data: { turbo_method: :delete" } %>

It's a subtle change but it's fundamental.

If you are also using Rails Scaffold to generate your features, you will have to change the delete link that is shipped by default. As of January 19th 2022, Rails will use something like this:

<%= link_to "Delete", destroy_post_path, method: delete %>

When you try to delete a post, you will not see any change in the page. You ned to change the method and insert it into data and change the method to turbo_method just like the example above.

Then you have your delete function back!