15
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

link_to deleteメソッドがGetメソッドで送られる。

Last updated at Posted at 2019-05-06

#Rails 5.1 link_to deleteメソッドがGetメソッドになる。

ある日、deviseでログアウトを作って、

 <%= link_to 'ログアウト', destroy_user_session_path, method: :delete %>

ログアウトを試してみたら、ルーティングエラーが起きた。
そして何故か、ログを見てみたらGetでアクセスしている。

html見ても

<a rel="nofollow" data-method="delete" href="/users/sign_out">ログアウト</a>

しっかりdeleteになってる。

#解決方法

##rails-ujs

ruby on rails 5.0まではjqueryに依存していてjquery-ujsを使ってたらしいですが、5.1以降ではもうjqueryに依存していないので、rails-ujsを使うそうです。

$ yarn add rails-ujs

application.jsに追加。

app/javascript/packs/application.js(webpacker)

(省略)...

import Rails from 'rails-ujs'
Rails.start()

または、

app/assets/javascripts/application.js
//= require rails-ujs

自分の場合はこれで直りました。

#参考にさせて頂きました。
Rails 5.1を使うならSprocketsは捨ててwebpackを使おう

15
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?