teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

修正

2020/02/12 12:22

投稿

no1knows
no1knows

スコア3365

answer CHANGED
@@ -1,3 +1,25 @@
1
+ 追記です。
2
+
3
+ こちらの解決策は、ログアウトボタンを下記のように変更することだったようです。
4
+
5
+ `<%= link_to 'ログアウト', destroy_user_session_path, method: :delete %>`
6
+
7
+ `<%= button_to 'Exit', destroy_user_session_path, method: :delete %>`
8
+
9
+ 調べたところ、button_toヘルパーはフォームを作成するそうです。
10
+
11
+ > button_toヘルパーとlink_toヘルパーは、ほとんど同じような動作をさせることができます。
12
+ > しかし、生成されるHTMLはまったく違っていますので、注意が必要です。
13
+ > link_toヘルパーは、「Edit」の部分であるaタグを使ったリンクが生成されています。しかし、それに比べて、button_toヘルパーは、フォームが生成されて、その中にボタンが設置されているのです。
14
+
15
+ [https://web-camp.ioの下の方にある「button_toヘルパーはフォーム」より抜粋](https://web-camp.io/magazine/archives/19147)
16
+
17
+ 結論として、`link_to`だとページ遷移を行っているだけ、`button_to`だとdestroyアクションを実行しているという違いがあるようです。
18
+
19
+ ---
20
+
21
+ 最初の回答
22
+
1
23
  公式のissueを確認したところDeviseを利用しているとたまに遭遇する問題で、原因は主に`rails-ujs`が読み込まれていないことのようです。
2
24
  [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)
3
25
 
@@ -19,24 +41,4 @@
19
41
 
20
42
 
21
43
  参考:対処方法がたくさん書いてあるスレッド
22
- [https://github.com/heartcombo/devise/issues/4486](https://github.com/heartcombo/devise/issues/4486)
44
+ [https://github.com/heartcombo/devise/issues/4486](https://github.com/heartcombo/devise/issues/4486)
23
-
24
- ---
25
-
26
- 追記です。
27
-
28
- こちらの解決策は、ログアウトボタンを下記のように変更することだったようです。
29
-
30
- `<%= link_to 'ログアウト', destroy_user_session_path, method: :delete %>`
31
-
32
- `<%= button_to 'Exit', destroy_user_session_path, method: :delete %>`
33
-
34
- 調べたところ、button_toヘルパーはフォームを作成するそうです。
35
-
36
- > button_toヘルパーとlink_toヘルパーは、ほとんど同じような動作をさせることができます。
37
- > しかし、生成されるHTMLはまったく違っていますので、注意が必要です。
38
- > link_toヘルパーは、「Edit」の部分であるaタグを使ったリンクが生成されています。しかし、それに比べて、button_toヘルパーは、フォームが生成されて、その中にボタンが設置されているのです。
39
-
40
- [https://web-camp.ioの下の方にある「button_toヘルパーはフォーム」より抜粋](https://web-camp.io/magazine/archives/19147)
41
-
42
- 結論として、`link_to`だとページ遷移を行っているだけ、`button_to`だとdestroyアクションを実行しているという違いがあるようです。

1

追記

2020/02/12 12:22

投稿

no1knows
no1knows

スコア3365

answer CHANGED
@@ -19,4 +19,24 @@
19
19
 
20
20
 
21
21
  参考:対処方法がたくさん書いてあるスレッド
22
- [https://github.com/heartcombo/devise/issues/4486](https://github.com/heartcombo/devise/issues/4486)
22
+ [https://github.com/heartcombo/devise/issues/4486](https://github.com/heartcombo/devise/issues/4486)
23
+
24
+ ---
25
+
26
+ 追記です。
27
+
28
+ こちらの解決策は、ログアウトボタンを下記のように変更することだったようです。
29
+
30
+ `<%= link_to 'ログアウト', destroy_user_session_path, method: :delete %>`
31
+
32
+ `<%= button_to 'Exit', destroy_user_session_path, method: :delete %>`
33
+
34
+ 調べたところ、button_toヘルパーはフォームを作成するそうです。
35
+
36
+ > button_toヘルパーとlink_toヘルパーは、ほとんど同じような動作をさせることができます。
37
+ > しかし、生成されるHTMLはまったく違っていますので、注意が必要です。
38
+ > link_toヘルパーは、「Edit」の部分であるaタグを使ったリンクが生成されています。しかし、それに比べて、button_toヘルパーは、フォームが生成されて、その中にボタンが設置されているのです。
39
+
40
+ [https://web-camp.ioの下の方にある「button_toヘルパーはフォーム」より抜粋](https://web-camp.io/magazine/archives/19147)
41
+
42
+ 結論として、`link_to`だとページ遷移を行っているだけ、`button_to`だとdestroyアクションを実行しているという違いがあるようです。