テックキャンプ短期集中オンラインコース。学習26日目のふりかえり

学習時間:11:00

実装内容(最終課題):商品購入機能(フォームオブジェクトを利用した一括保存、PAY.JPを使ったクレジットカード決済機能)

解決したことや学んだ単語:form_withのmodelオプションにフォームオブジェクトを使ったインスタンス変数を渡すときは別途にurlオプションを使いURLを指定すること、DBに保存されていないのにエラーが出ないときはcreate!などと!マークをつけることで例外を発生させられること。attr_accessorはインスタンス変数の変更を許可するもの。renderとredirect_toの違い,javascriptでformDataを渡すときは検証ツールを用いてname属性を確認すること、PAY.JPの処理はコントローラーで、フォームオブジェクトの保存処理は専用のクラスでと機能ごとに処理を分けたほうが良いこと、フォームの送信処理をjavascriptで止めていた場合はエラーが起きて送れなかった場合の処理にもフォーム送信処理を記述しておくことなど。

 

学習の振り返り:

 今日は商品購入機能のエラーハンドリングとPAY.JPを使った決済機能実装に着手した。フォームオブジェクトを利用したデータの一括記録まではよかったのだが、カード決済機能を混ぜると途端に進まなくなってしまった。不具合が起きているのは確かだが、それが何故か、どのようにして困っているのかを相談できる段階にまで持っていくことができず長時間悩んでしまった。その後メンターの方に質問したところ、問題を丁寧に切り分けることで解決への糸口を見つけることができた。処理を一つずつ追うには当たり前だが処理の流れや仕組みを理解している必要があるので初めての実装の際には殊更丁寧に取り組むようにしたい。また自分で解決できない問題に直面すると混乱して冷静さを失ってしまうが、これが非常に良くない。焦ってしまっては解決できるものもできないし余計に問題を大きくしてしまうこともあった。そのため、そういった状況に陥ったらまずは落ち着いて冷静に状況を確認することを意識していきたい。