質問編集履歴

8

ルーティングのコード追加

2017/10/17 08:29

投稿

shi6na
shi6na

スコア14

test CHANGED
File without changes
test CHANGED
@@ -34,7 +34,7 @@
34
34
 
35
35
 
36
36
 
37
- 以下にherokuのログと、コントローラーのコードを投げておきます。
37
+ 以下にherokuのログと、コントローラー(webhook_controller.rb)、routes.rbのコードを投げておきます。
38
38
 
39
39
  (コントローラーはこちらを参考にしております(https://qiita.com/YoheiMiyamoto/items/f6851cdb40891edf0e57))
40
40
 
@@ -132,6 +132,24 @@
132
132
 
133
133
  ```
134
134
 
135
+ #routes.rb
136
+
137
+ Rails.application.routes.draw do
138
+
139
+ # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
140
+
141
+
142
+
143
+ post '/callback' => 'webhook#callback'
144
+
145
+
146
+
147
+ end
148
+
149
+ ```
150
+
151
+ ```
152
+
135
153
  2017-10-10T12:52:52.629674+00:00 app[web.1]: [b6566130-8446-4c9b-8b6c-b6d653fb0c07] Started POST "/callback" for 203.104.156.75 at 2017-10-10 12:52:52 +0000
136
154
 
137
155
  2017-10-10T12:52:52.634068+00:00 app[web.1]: [b6566130-8446-4c9b-8b6c-b6d653fb0c07] Processing by WebhookController#callback as HTML

7

試してみた方法を追記

2017/10/17 08:29

投稿

shi6na
shi6na

スコア14

test CHANGED
File without changes
test CHANGED
@@ -30,7 +30,7 @@
30
30
 
31
31
 
32
32
 
33
- (追記)もしかしてcallback内に「render :nothing => true」が2つある・・・?
33
+ (追記)もしかしてcallback内に「render :nothing => true」が2つあるのが問題かと思いましたが、and returnを入れても変化なかったので違いそうです。
34
34
 
35
35
 
36
36
 

6

疑問点が減ったため質問形式を変更

2017/10/11 10:08

投稿

shi6na
shi6na

スコア14

test CHANGED
@@ -1 +1 @@
1
- Heroku 「ActionView::MissingTemplate」エラー
1
+ 【Rails】「 render :nothing => true が効かない
test CHANGED
@@ -1,8 +1,8 @@
1
- railsLINEBOTを作成しようとしております。
1
+ rails、herokuを用いてLINEBOTを作成しようとしております。
2
2
 
3
3
  heroku run rails consoleをすると正常に動くのですが、実際にLINEで話し掛けると
4
4
 
5
- どうも上手くいかないためherokuにてログを参照したところ、以下のエラーが出ます。
5
+ どうも上手くいかないためherokuにてログを参照したところ、以下のようなActionViewエラーが出ます。
6
6
 
7
7
  ```
8
8
 
@@ -18,13 +18,19 @@
18
18
 
19
19
  ```
20
20
 
21
- 「ActionView~」でテンプレートがないようなことを言っているのはわかるのですが、
21
+
22
-
23
- 何をどこに追加してあげたらよいのか調べてもわからずじまいのため質問させていただきます。
22
+
24
-
25
- (同日追記)色々調べましたが、callbackアクションに対して表示するviewがないよ!と言ってそうな気がします。「application/callback」とあるのでviewでない、違うやつのような気もします。わからん。
23
+ callbackアクションに対して表示するviewがないよ!と言ってそうな気がしますが、webhookコントローラー内callbackアクションにて「render :nothing => true何も表示しないと指定ています。
24
+
26
-
25
+ その後の「application/callback」がミソのような気がしますが、applicationコントローラーにはcallbackアクションは無い・・・と、ここで詰まっております。
26
+
27
- 「render :nothing => true」で何も表示しないことを言ってあげればよさそうです、既にcallbackアクション内に書いてます。なんだろ
27
+ 「render :nothing => true」が効かない条件トローラー内にあるのしょか?
28
+
29
+ また、「app/controllers/webhook_controller.rb:10:in `callback'」もヒントになるような気はするのですが、わからずじまいです。(webhookコントローラーの10行目にrender :nothing => trueを書いてる)
30
+
31
+
32
+
33
+ (追記)もしかしてcallback内に「render :nothing => true」が2つある・・・?
28
34
 
29
35
 
30
36
 
@@ -182,14 +188,14 @@
182
188
 
183
189
 
184
190
 
185
- 同日)CSRFエラー解決しました
191
+ 補足herokuログに「Can't verify CSRF token authenticity.」とありますが、CSRFエラーの方は解決しており
186
-
192
+
187
- ```ruby
193
+ ```
188
194
 
189
195
  protect_from_forgery except: :callback
190
196
 
191
197
  ```
192
198
 
193
- でcallbackをよけてあげるとCSRFエラー消えました。
199
+ でcallbackをよけてあげると通りました。
194
-
200
+
195
- コードの方修正してあります。
201
+ コードの方修正してあります。

5

現状説明追加

2017/10/11 03:31

投稿

shi6na
shi6na

スコア14

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,6 @@
1
1
  railsでLINEBOTを作成しようとしております。
2
+
3
+ heroku run rails consoleをすると正常に動くのですが、実際にLINEで話し掛けると
2
4
 
3
5
  どうも上手くいかないためherokuにてログを参照したところ、以下のエラーが出ます。
4
6
 

4

考察追加、ログとコード修正

2017/10/10 14:24

投稿

shi6na
shi6na

スコア14

test CHANGED
File without changes
test CHANGED
@@ -3,8 +3,6 @@
3
3
  どうも上手くいかないためherokuにてログを参照したところ、以下のエラーが出ます。
4
4
 
5
5
  ```
6
-
7
- Can't verify CSRF token authenticity.
8
6
 
9
7
  Completed 500 Internal Server Error in 8ms
10
8
 
@@ -22,7 +20,7 @@
22
20
 
23
21
  何をどこに追加してあげたらよいのか調べてもわからずじまいのため質問させていただきます。
24
22
 
25
- (同日追記)色々調べましたが、表示するviewがないよ!と言ってそうです。
23
+ (同日追記)色々調べましたが、callbackアクションに対して表示するviewがないよ!と言ってそうな気がします。「application/callback」とあるのviewでない、違うやつのような気もします。わからん。
26
24
 
27
25
  「render :nothing => true」で何も表示しないことを言ってあげればよさそうですが、既にcallbackアクション内に書いてます。なんでだろう…
28
26
 
@@ -36,7 +34,7 @@
36
34
 
37
35
  class WebhookController < ApplicationController
38
36
 
39
- protect_from_forgery with: :null_session
37
+ protect_from_forgery except: :callback
40
38
 
41
39
 
42
40
 
@@ -191,3 +189,5 @@
191
189
  ```
192
190
 
193
191
  でcallbackをよけてあげるとCSRFエラー消えました。
192
+
193
+ コードの方も修正してあります。

3

誤字修正

2017/10/10 14:19

投稿

shi6na
shi6na

スコア14

test CHANGED
File without changes
test CHANGED
@@ -18,13 +18,13 @@
18
18
 
19
19
  ```
20
20
 
21
- 「ActionView~」テンプレートがないようなことを言っているのはわかるのですが、
21
+ 「ActionView~」テンプレートがないようなことを言っているのはわかるのですが、
22
22
 
23
23
  何をどこに追加してあげたらよいのか調べてもわからずじまいのため質問させていただきます。
24
24
 
25
25
  (同日追記)色々調べましたが、表示するviewがないよ!と言ってそうです。
26
26
 
27
- 「render :nothing => true」で何も表示しないよ!と言ってあげればよさそうですが、既にcallbackアクション内に書いてます。なんでだろう…
27
+ 「render :nothing => true」で何も表示しない言ってあげればよさそうですが、既にcallbackアクション内に書いてます。なんでだろう…
28
28
 
29
29
 
30
30
 

2

考察の追加

2017/10/10 14:11

投稿

shi6na
shi6na

スコア14

test CHANGED
File without changes
test CHANGED
@@ -20,9 +20,11 @@
20
20
 
21
21
  「ActionView~」テンプレートがないようなことを言っているのはわかるのですが、
22
22
 
23
- 何をどこに追加してあげたらよいのか(viewが無・・・?)、
23
+ 何をどこに追加してあげたらよいのか調べてもわからずじまのため質問させていただきます。
24
24
 
25
- 調べてもわからずじまいのため質問させいただきます。
25
+ (同日追記)色々調べましたが、表示するviewがなよ!と言っそうです。
26
+
27
+ 「render :nothing => true」で何も表示しないよ!と言ってあげればよさそうですが、既にcallbackアクション内に書いてます。なんでだろう…
26
28
 
27
29
 
28
30
 

1

詰まっているところが1つ解決したため編集しました。(CSRFエラー解決)

2017/10/10 13:57

投稿

shi6na
shi6na

スコア14

test CHANGED
@@ -1 +1 @@
1
- Heroku 「Can't verify CSRF token authenticity.」エラー
1
+ Heroku 「ActionView::MissingTemplate」エラー
test CHANGED
@@ -18,13 +18,9 @@
18
18
 
19
19
  ```
20
20
 
21
- 「ActionView~」テンプレートがないようなことを言っているの
21
+ 「ActionView~」テンプレートがないようなことを言っているのはわかるのですが
22
-
23
- 「Can't verify CSRF~」のCSRFエラーは外部からのAPIを受けるアクションを除外してあげたらよいのは分かるのですが、それぞれ、
24
22
 
25
23
  ・何をどこに追加してあげたらよいのか(viewが無い・・・?)、
26
-
27
- ・どれを除外したらいいのか(callbackアクション?)
28
24
 
29
25
  が調べてもわからずじまいのため質問させていただきます。
30
26
 
@@ -175,3 +171,21 @@
175
171
  2017-10-10T12:53:32.721685+00:00 app[web.1]: [f8695c6b-0fc7-44a7-966a-65b353dcf3d2] app/controllers/webhook_controller.rb:10:in `callback'
176
172
 
177
173
  ```
174
+
175
+
176
+
177
+
178
+
179
+ ---
180
+
181
+
182
+
183
+ (同日)CSRFエラー解決しました。
184
+
185
+ ```ruby
186
+
187
+ protect_from_forgery except: :callback
188
+
189
+ ```
190
+
191
+ でcallbackをよけてあげるとCSRFエラー消えました。