7/15 本日の学び

productsコントローラーはダメやん!!

と昨夜寝がけに気づいたので、コントローラーはcardsにして以下のアクションとそれらに付随する処理を記述しました。
- new
-create
-privateメソッド

この辺ちょっと気を抜くと脳からぶぅぅんと音がして、一点を凝視したまま動作が止まる現象が起きるので、 コード1行につき1行のコメントという徹底したサポートでフリーズを阻止。 でも意外とこのやり方をが自分に合っているようで、というのも1行のコードをとてもじっくり読む作業になるからか、 他のサイトのコードと見比べるときに、多少記述が異なっていても『これはトークンを作ってるコード』と なんとなく目星がつくようになりました。全然スマートさのかけらもないですが、この地道なやり方で 乗り越えていこうと思います。

コントローラーの記述をなるべく早めに終わらせないと・・・

コントローラーも難しいのですが、ここでは作られたトークンを受け取る記述をするところで、 どちらかというとjsファイルのトークンを作成するコードが富士山級に難しく 今の私のレベルでは、ビーサンと短パンで登ろうとしている状態です(はい、死を意味します)。 でも私は凡人中の凡人だし、何回もしつこくやらないと理解しないって分かっているので、 コントローラー攻略作戦で、1行のコードにつき10個くらいサイトを見ることになるでしょうが、 少しずつ登山靴とか、ズボンとか揃えて富士山に挑もうと思います。

7/15 (水)定期MTG 個人目標

■内海さん

- 商品出品機能の商品登録ができるようにする

 

■金子さん

- ユーザーログインのマークアップ1ページは終わらせるのが目標

 

■木村さん

- 画像を保存して表示できることまでを目標

 

■山川さん

- 商品の詳細部分(画像とかサイズとか)までが目標

 

■中村

- contorollerの記述8割目標、いけるなら全部書き終えてjsに取り組みたいところ・・・

7/14 本日の学び

分かっているようで分かっていなかった

payjpの実装の大きな枠組みを理解できていなかった。 大雑把な流れをここで再度確認。

payjpを用いた決済の大きな流れ

1 payjpのgemをインストール
2 payjpのHPでアカウント登録し秘密鍵と公開鍵を取得する
3 2の鍵はトークンを発行するときに使う
4 フォームを作ってカード情報を入力させる
5 入力した情報はpayjp側で保存され、代わりにトークンを発行する
6 アプリ側でトークンを受け取る
7 トークンを元に決済する

5、6の処理が本当に難しい。

ひとまずpayアクションで処理するコードだけ 今日は書きました。

これひょっとして間違ってるんじゃないかと思い始めていること

本当に今更感がすごいのですが、controllerをproductsにしたらダメなんじゃないかと思い始めました。 別の名前にしないと、私もnewやcreateやdestroyの処理を書こうとしているので ダメじゃないか!?と思い始めました。

明日、クレジットカード用のコントローラー名に変えて、もう一度コードを書き直そうと思います。 うん、やっぱり考えれば考えるほどダメですね。 cardsコントローラーとか、明らかにクレジットカード用のコントローラーだなと分かるものにしようと思います。

7/13(月) 本日の学び

進んだこと

  • productsコントローラーの生成

アクションはこれ・・・?

  • index

  • new

  • cretate

  • destroy

  • pay

 

実装しながら変更しなければならない時は適宜変更。

payアクションが実行する処理

・ユーザーがフォームに入力したカード情報をトークン化

・支払い処理を行う

・payアクション内に、payjp独自のAPI定型文を記述する

躓いているところ

  • アクション名もなんとなく絞ったけれど、まだまだ具体的なコードをこの実装に対応させるのが難しい。  でも、明日、ひとまず書くだけ書いてみようと思う。

  • やっぱり可視化できないのはやってて進んでるのかよくわからないので、ビューと並行してやります。  

7/12(日) 本日の学び

 今日できたこと

■payjpのテスト秘密鍵とテスト公開鍵をvim ~/.bash_profileに保存

・どうやって作られるのか
payjpにアカウントを作ると自動でテスト秘密鍵、公開鍵と本番環境用の秘密鍵、公開鍵が付与される。 今はテストの鍵を用いてカード情報を登録する。

・何のために必要なのか
秘密鍵と公開鍵を用いて登録したクレジットカードにトークンを与え、決済時にトークンと引き換えに 購入ができるようになる。

今日のつまずき

■gitignoreに(git addする前に)今回鍵を記述したファイルをgitで管理しないでくれ、と書いておかないといけないけどよくわかっていない。
多分、このvim ~/.bash_profileに記述した内容は、secrets.ymlに環境変数として記述しないといけないんじゃないかな。

■それぞれのアクションの洗い出しがよくわかってない
参考記事をいくつか見たけれど、どれもバラバラでどうするのが適しているのか見極められない。
明日も引き続きそれを詰める作業をする。

7/12(日)定期MTG 個人目標のメモ

■個人目標(アイウエオ順です)

・内海さん

- categoryの実装を済ませる

- JavaScriptを実際の自分の実装に合わせて作成

 

・金子さん

- アクティブハッシュを用いて実装進めてみる(selectに挑戦)

 

・木村さん

- 商品の一覧表示のコードを書く(カリキュラム参照しつつ)

 

・山川さん

- 商品詳細ページでコメントまでマークアップできたので、関連商品の表示

までできるようにする

 

 

・中村

- コントローラーとアクションを設定してコードを書く

- 全体の5割目標

7/11 本日の学び

■できたこと

・最新のmasterブランチをローカルに反映させた

・credit_cardsテーブルの作成(コミット&プッシュ)

でも、今回も同じようなエラーが出てしまい、この記事の通りにやったら解決できた。

https://bokunonikki.net/post/2018/0214_rails_mysql_error/

 

■できなかったこと

・この次コントローラーの作成に移る。ここから実装が格段に難しくなるので

調べつつ実装していく。

 

■お役立ちメモ

migrationファイルに、1つスペルミスのカラムがあったことに気づかず、

そのままrails db:migrateしてしまった。

```rails db:rollback```で差し戻し修正ができるんだけど、これは1つ前のmigrationファイルしか差し戻せない。早めに気づけばこのコマンドで修正できるけど、日が経って、自分の作成したファイルの後にどんどん他のメンバーのファイルが積み下がると、場所を指定して差し戻さなければならないので要注意。

まず、```rails db:migrate:status```で自分のmigrateファイルが何番目に位置しているのか確認するのが大事。

https://qiita.com/s_tatsuki/items/3e1f119c91e21b8f0c33