ほんの些細なことで丸1日つぶれた。
そんなことにならないためにも体系的なデバッグの仕方を定着させておいた方がいい。
ということで、今回学んだデバッグにおいて注意すべき点のまとめ。
1. エラーの場所を特定する。
基本中の基本ですね。特定しないことには何も始りません。
ただ、特定する場合も、action名を特定するだけではなく、より具体的に場所を特定しましょう。
2. パラメータを追っていく
基本的にはrailsのプログラムなどはステートレスにパラメータを渡したりしています。そのため、あっちへ行った入りこっちへ行ったり。
その途中で変な値が入る可能性があるので注意しましょう。
3. フィルタを見る
アクション、コントローラには、フィルタがあります。
特定のアクションが実行される前に実行されるアクションです。
見落としの内容にしっかり確認しましょう。
4. ログを見る
これが基本という方もいるみたいですが、重要です。
パラメータを追っていくよりログを見て実際にどのような動きをしていたのかを確認しましょう。
5. 同じ環境・同じデータで確認する
これも基本です。
不具合が報告された場合には同じ環境・同じデータで確認をしましょう。
6. 違う環境・違うデータで確認する
これはイレギュラーなケースかもしれませんが、ひょっとすると特定のデータ・特定の環境が悪いのかもしれません。
その可能性も否定できないので別の環境でも試してみましょう。
それにしても、HTTPのGETリクエストで
?ids[]="12345"
となるパラメータを渡したとき、
ローカル環境のrails君は{:ids => ["12345"]}と解釈したのに対して、
テスト環境のrails君は{:ids[] => "12345"}と解釈したのだろう?
誰か原因がわかる方いらっしゃいましたら教えてくださいm(_ _)m
泣いて喜びます。