【チーム開発】本日の進歩状況2020-08-04
・本日の作業
バリデーションなどでsaveが失敗した際にrenderで「new」アクションに戻るようにエラーハンドリングを行っています。
jsで入力欄や画像を表示してる部分が、render後には入力されていない状態で出品欄にきてしまいます。いろいろ調べていたのですが何も分からずメンターさんに相談しました。
画像投稿の部分ではcarriewaveを使っている場合はcashという機能を使うと上手くいくかもということでこれから調べていきます。
カテゴリー欄に関しては編集機能で初期値を表示するようにする記術
【チーム開発】本日の進歩状況2020-08-02
・本日の作業
昨日カテゴリー編集機能が終わったので
今日からはユーザーマイページの実装に移りました。
取り敢えずlink_toを使ってリンクをいろいろ貼りました。
ビューがないものに関してはビューを作って、出品商品の表示には成功しました。
kaminariも導入し、カリキュラムでやったページネーションも実装してみました。
・躓いているところ
購入済み商品をどう表示すればいいのかが謎です。
購入したユーザーを登録するカラムをつくる必要があるのだろうか?
メンバーとも相談しなければならない案件っぽいです。
水曜日にでも相談だ。
【チーム開発】本日の進歩状況2020-07-27
・本日の作業
①画像編集機能実装
②カテゴリー編集機能実装
の2点について作業しました。どちらもJSにとまどりました。
①画像編集
editに遷移してもビューの崩れもなく投稿もできました。
そのまま商品出品しても問題なし。
削除の順番によっては商品が投稿できなくなるエラーを抱えていますがそれはひとまず置いておくとします。
②カテゴリー編集
商品の初期値を表示することには成功。
newアクションの時とカテゴリーの呼び出す順番が逆なのでそこに苦労しました。
これもJS使っているのですがeditだと上手く動いてくれない。きっとget_category_childrenメソッドとget_category_grand_childrenメソッドをeditアクション用に変更しないといけなさそうです。
なかなか時間がかかりそう。
【チーム開発】本日の進歩状況2020-07-26
・本日の作業内容
①カテゴリー機能実装完了。LGTMをもらいmasterにマージ
②商品編集機能の画像編集の部分に取り組む
大雑把にいうと上記2点でした。
①
サイズのバリデーションをどうかけようかずっと迷っていたのが解決。
productモデルに size_exist(選んだカテゴリーにサイズが存在するか確認するメソッド)を作り、
size_existでsize_idカラムに条件つきバリデーションをかけることに成功しました。
size_idが保存されないのは送られているパラメーター名と保存するカラム名が違ったからっぽいようです。送られてくるパラメーターをどう変えるのかわからなかったためカラム名を変えることに。何とか保存できました。
カテゴリー機能今日で終わって一安心
②
商品出品機能の時に思ってましたけど、画像編集とカテゴリー編集はJSを使っているからか一筋縄では行かなそうです。
とりあえずnewとeditで同じフォームを使っているのでviewの中で場合分け。
if文が多くなるので可読性はよくないかも。
初めからviewを分けた方がいいのだろうか?
とりあえず条件分岐はできたのでこのまま実装進めていきます。
・躓いているところ
editの際画像を追加するとプレビュー画像の下に画像が追加される。本来は横に追加していって欲しいのに。
JSをedit機能用に追加すれば直るのだろうか。ひとまずJSをedit用に追加変更していきます。
【チーム開発】本日の進歩状況2020-07-25
・本日の作業内容
昨日サイズの表示ができるようになったのですが
上手く保存できていない事に今日気付きました。
データは送られているっぽいのでcreateの記述をしっかりやらないといけないようです。
サイズのバリデーションのこともあるので早め早めにやっていこうと思います。
【チーム開発】本日の進歩状況2020-07-24
・本日の作業
サイズを表示するためのJSを記述して半日、なんとかサイズの表記に成功しました。
ただカテゴリーの時と同じようにrenderで戻ってくるとカテゴリーが選択できないのはそのまま。
最初はturbolinksが悪さしているのかと思ったのでがそんなこともなく
どうしようもなくなりメンターさんに相談しました。
結論からいうと
JSのajaxでurlを指定する際
url: '/products/get_category_children',
とurlパターンを記述する必要があるようです。
メンターさん曰く
「renderを使う場合はurlパターンをしっかり記述しないとルーティングエラーが出てしまうので気をつけてください」
とのことでした。
お陰様で無事renderされてもカテゴリーが動くようになりました。
・躓いているところ
サイズを選択しなければならない時にだけnot null制約を付けたいのですが、なかなか上手く実装できないでいます。
if文を使えば良さそうだけどどう使えばいいのかがよくわかっておらずお手上げ状態です。
明日メンターさんに相談して解決できるといいな。
【チーム開発】本日の進歩状況2020-07-23
・本日の作業
今日は初めて朝モクに参加しました。
朝二度寝せずに起きると気持ちいいですね。今度から早寝早起きに切り替えようか。
それは置いといて今日の作業です。
1.productモデルのバリデーション確認。
バリデーションをちゃんと確認していなかったのでその確認をしました。
「一つ一つ投稿するのは面倒だな、本当に大丈夫かな」ということで、バリデーションエラーを表示させてエラーがちゃんと出ているかもついでにやってみました。
カリキュラムでもやったしすぐ出来るだろうと思ったのとどうせなら部分テンプレートで実装して記述をスッキリしようとしたところ、
一番上にまとめて表示させるのはすぐ出来たのですが、一つ一つのフォームの下に表示させるのが上手くいかず、
結局部分テンプレートは諦めてまんまif文を書いてコピーペースト・記述修正でエラー表示出来るようにしました。変なところで時間を使ってしまった。
2.カテゴリーテーブルのデータ残りを作成、サイズ用のテーブルと中間テーブルデータ作成
タイトルの通りテーブルのデータ作成をしました。
カテゴリー参考サイト見るとわかるんですけど結構な量、
最初は丁寧に打ち込んでいたのですが、途中からコピー&ペースト出来ることに気付き
コピー&ペーストして「' '」で囲む作業を永遠とやっていました。意外と大変。
カテゴリーのデータベース作成が終わってからはサイズのデータベースを作成。
カテゴリーの時と同じように、each文を使って作成しました。
サイズは子まで作成したら終わりなのでカテゴリーと比べたら楽でした。
サイズとカテゴリーの中間テーブルはcsvファイルで記述したものを読み込みました。これはブランドでやった時と同じですね。
チョロチョロ記述ミスもあったので一発では成功しませんでしたが
なんとかデータベースの作成に成功。
明日はサイズを表示するようJSを書くだけです。これがなかなか大変なのですが。
明日も朝モク参加出来るよう今日はこれで寝ようと思います。
また明日。