回答編集履歴

2

修正

2020/02/12 12:22

投稿

no1knows
no1knows

スコア3365

test CHANGED
@@ -1,3 +1,47 @@
1
+ 追記です。
2
+
3
+
4
+
5
+ こちらの解決策は、ログアウトボタンを下記のように変更することだったようです。
6
+
7
+
8
+
9
+ `<%= link_to 'ログアウト', destroy_user_session_path, method: :delete %>`
10
+
11
+
12
+
13
+ `<%= button_to 'Exit', destroy_user_session_path, method: :delete %>`
14
+
15
+
16
+
17
+ 調べたところ、button_toヘルパーはフォームを作成するそうです。
18
+
19
+
20
+
21
+ > button_toヘルパーとlink_toヘルパーは、ほとんど同じような動作をさせることができます。
22
+
23
+ > しかし、生成されるHTMLはまったく違っていますので、注意が必要です。
24
+
25
+ > link_toヘルパーは、「Edit」の部分であるaタグを使ったリンクが生成されています。しかし、それに比べて、button_toヘルパーは、フォームが生成されて、その中にボタンが設置されているのです。
26
+
27
+
28
+
29
+ [https://web-camp.ioの下の方にある「button_toヘルパーはフォーム」より抜粋](https://web-camp.io/magazine/archives/19147)
30
+
31
+
32
+
33
+ 結論として、`link_to`だとページ遷移を行っているだけ、`button_to`だとdestroyアクションを実行しているという違いがあるようです。
34
+
35
+
36
+
37
+ ---
38
+
39
+
40
+
41
+ 最初の回答
42
+
43
+
44
+
1
45
  公式のissueを確認したところDeviseを利用しているとたまに遭遇する問題で、原因は主に`rails-ujs`が読み込まれていないことのようです。
2
46
 
3
47
  [https://github.com/heartcombo/devise/issues](https://github.com/heartcombo/devise/issues?utf8=%E2%9C%93&q=No+route+matches+%5BGET%5D+%22%2Fusers%2Fsign_out%22)
@@ -41,43 +85,3 @@
41
85
  参考:対処方法がたくさん書いてあるスレッド
42
86
 
43
87
  [https://github.com/heartcombo/devise/issues/4486](https://github.com/heartcombo/devise/issues/4486)
44
-
45
-
46
-
47
- ---
48
-
49
-
50
-
51
- 追記です。
52
-
53
-
54
-
55
- こちらの解決策は、ログアウトボタンを下記のように変更することだったようです。
56
-
57
-
58
-
59
- `<%= link_to 'ログアウト', destroy_user_session_path, method: :delete %>`
60
-
61
-
62
-
63
- `<%= button_to 'Exit', destroy_user_session_path, method: :delete %>`
64
-
65
-
66
-
67
- 調べたところ、button_toヘルパーはフォームを作成するそうです。
68
-
69
-
70
-
71
- > button_toヘルパーとlink_toヘルパーは、ほとんど同じような動作をさせることができます。
72
-
73
- > しかし、生成されるHTMLはまったく違っていますので、注意が必要です。
74
-
75
- > link_toヘルパーは、「Edit」の部分であるaタグを使ったリンクが生成されています。しかし、それに比べて、button_toヘルパーは、フォームが生成されて、その中にボタンが設置されているのです。
76
-
77
-
78
-
79
- [https://web-camp.ioの下の方にある「button_toヘルパーはフォーム」より抜粋](https://web-camp.io/magazine/archives/19147)
80
-
81
-
82
-
83
- 結論として、`link_to`だとページ遷移を行っているだけ、`button_to`だとdestroyアクションを実行しているという違いがあるようです。

1

追記

2020/02/12 12:22

投稿

no1knows
no1knows

スコア3365

test CHANGED
@@ -41,3 +41,43 @@
41
41
  参考:対処方法がたくさん書いてあるスレッド
42
42
 
43
43
  [https://github.com/heartcombo/devise/issues/4486](https://github.com/heartcombo/devise/issues/4486)
44
+
45
+
46
+
47
+ ---
48
+
49
+
50
+
51
+ 追記です。
52
+
53
+
54
+
55
+ こちらの解決策は、ログアウトボタンを下記のように変更することだったようです。
56
+
57
+
58
+
59
+ `<%= link_to 'ログアウト', destroy_user_session_path, method: :delete %>`
60
+
61
+
62
+
63
+ `<%= button_to 'Exit', destroy_user_session_path, method: :delete %>`
64
+
65
+
66
+
67
+ 調べたところ、button_toヘルパーはフォームを作成するそうです。
68
+
69
+
70
+
71
+ > button_toヘルパーとlink_toヘルパーは、ほとんど同じような動作をさせることができます。
72
+
73
+ > しかし、生成されるHTMLはまったく違っていますので、注意が必要です。
74
+
75
+ > link_toヘルパーは、「Edit」の部分であるaタグを使ったリンクが生成されています。しかし、それに比べて、button_toヘルパーは、フォームが生成されて、その中にボタンが設置されているのです。
76
+
77
+
78
+
79
+ [https://web-camp.ioの下の方にある「button_toヘルパーはフォーム」より抜粋](https://web-camp.io/magazine/archives/19147)
80
+
81
+
82
+
83
+ 結論として、`link_to`だとページ遷移を行っているだけ、`button_to`だとdestroyアクションを実行しているという違いがあるようです。