【チーム開発】本日の進歩状況2020-07-22

・今日の作業

画像投稿時にJSでマークアップに合わせて動きをつける実装、LGTMもらったのでひとまず終了。

・躓いているところ。

バリデーションの確認をちゃんとやっていないことを思い出し少しやってみるんですけど

render :newで指定してあるのに、で戻った後のURLがなぜか

products/newではなく

productsになってしまう。(indexのURL)

そのせいでカテゴリーのJSが上手く動かないし。

んーどうしよう。

 

メンターさんに相談かな?

【チーム開発】本日の進歩状況2020-07-21

・本日の作業

やっと画像投稿機能の実装終わりました。

投稿フォームを投稿ごとに増やすのではなく、もともと置いておき、アップロードボタンを押すとそれが選択される実装方法に変更しました。

f:id:uchixm:20200722010804g:plain

削除もこのお通り。

f:id:uchixm:20200722010945g:plain


ファイルを選択のタグは後ほどCSSで消します。動作がわかりやすかったので今は表示したままにしました。

 

明日はカテゴリー機能、サイズの実装に移りたいと思います。

取り敢えずカテゴリーのDBが中途半端なので完成させないと。

 

 

 

【チーム開発】本日の進歩状況2020-07-20

・本日の作業

今日も画像投稿のJSをいろいろいじってました。

画像消去できるようになったんだけれども何だか挙動が変。

f:id:uchixm:20200720232906g:plain

このGIFだと上手くいっているように見えるんですけど

この後もう一度画像投稿しようとすると、一番左の画像が変更されて

そこから左の画像の変更しかできなくなるっていう。

なんとなく原因はわかっているのですが、画像登録の方法とともに変更するの必要がありそうです。

いろいろ奥が深い。

・躓いているところ

カテゴリー機能に伴うサイズの登録をどうしようか悩んでいたんですが

メンバーに相談したらなんとかなりそうな感じになりました。

メンバーに感謝。

取り敢えず画像の方はさっさと終わらせたいです。明日には決着つけれれば。

 

【チーム開発】本日の進歩状況2020-07-19

・本日の作業

最初に、メルカリのサイトをしっかり見てなかったせいで実装内容に勘違いがあったようです。すみません。

一つは出品ボタンを押したあと商品一覧ページに飛ぶようにしていたんですが、本当は商品出品完了ページにいかなくてはいけなかったみたいですね。すみません。勘違いも甚だしいですね。

もう一つはブランドの実装方法、やはり選択式だったようです。

文字を入力してインクリメンタルサーチでやってるみたいですね。ブランドのDBは作ったのであとはインクリメンタルサーチを実装するだけです。

本日やった作業についてです。

画像投稿の続き

やっと思ったような動きをしてくれるようになりました。 

f:id:uchixm:20200720012539g:plain

 まだ削除ボタンを押しても画像が消えないのと一度登録した画像を変更できないのでそこが課題ですね。水曜までにできるといいんですけど。

 

商品出品完了ページは作っておいたので本当にそこに遷移するか出品してみよーっと出品ボタンを押したのですが、まさかのエラー

f:id:uchixm:20200720013410p:plain

 

product_idなんて知らないよ的なエラーっぽいんですがなんのことだか。

っと記事を書いてたら思い出しました!

一度brandテーブルに入力内容のbrand_nameとproductのidを保存するようにporductモデルに has_one :branと記述していたのを消し忘れていたみたいです。

エラーの意味をしっかり考えると思いつくものですね。

そのあとルートパスの間違いエラーが出ましたけど、後ろに_pathを付けたら解決できました。

無事出品投稿完了ページに移動できた。

続けて出品も出品ページに移動するし

仮の商品一覧にも飛ぶので(本当は商品詳細ページに飛ぶ仕様のはずなのでまた後日変更します)とりあえずよし。

ページのマークアップは商品出品機能全部終わってからやろうと思います。

いやー画像投稿できたら寝ようと思ったらこんなにエラーが出るとは。ついてないです。

 

明日は画像投稿の削除ボタンで画像を消せるようにしていければと思います。

【チーム開発】本日の進歩状況2020-07-18

・本日の作業

seedファイルをCSVファイルで管理する方法があったので

brandテーブルで実践してみました。

https://qiita.com/kumasuke/items/545afaf5876d3dc52670

ブランド一覧はインターネットからコピーしてエクセルに貼り付け処理した後CSVファイル形式で保存

seedのディレクトリにcsvフォルダを作りぶち込み

作成したseedsファイルのbrand.rbにCSVファイルからDBを作成する記述を入力

seeds.rbに

 
require './db/seeds/brand.rb'
 

を追加で記入して

rake db:seed

ここまで行くのにいろいろ四苦八苦しましたけどなんとかbrandのDB作成に成功。

あとはbrandの入力らんにインクルメンタルサーチで実装すればOKかな。

 

・躓いているところ

案外マージしてからのコンフリクト解決が難しいことを実感しました。

ちゃんとみてやらないと他のメンバーがやったところを上書きしてしまう可能性のある恐ろしさ。

後半になればなるほどちゃんとしとかないと危なさそうです。

 

明日はずっと滞っている画像投稿画面をやらないと。

【チーム開発】本日の進歩状況2020-07-17

【本日の作業】

・現在のmasterの内容を本番環境へマージし動くかどうかの確認。

明日はスプリントレビューとのことだったので、今日内に内容を本番環境にマージ、動作チェックを行いました。

いつも忘れそうなのでここで流れを整理

①サーバーにSSHでログイン

$ cd ~
$ cd .ssh/

で.sshディレクトリィに移動

$ ssh -i ダウンロードした鍵の名前.pem ec2-user@作成したEC2インスタンスと紐付けたElastic IP

でec2-userとしてログイン

 

②アプリケーションを設置しているディレクトリに移動しGithubの内容を本番環境へ反映

$ cd /var/www/[リポジトリ]

で作業ディレクトリへ移動

$ git pull origin master

でローカルmasterの内容を本番環境へ反映

 

③念のためサーバーを停止→起動

まずUnicornのプロセスを確認

$ ps aux | grep unicorn

Unicornのプロセスを確認

ec2-user 17877  0.4 18.1 588472 182840 ?       Sl   01:55   0:02 unicorn_rails master -c config/unicorn.rb -E production -D
ec2-user 17881  0.0 17.3 589088 175164 ?       Sl   01:55   0:00 unicorn_rails worker[0] -c config/unicorn.rb -E production -D
ec2-user 17911  0.0  0.2 110532  2180 pts/0    S+   02:05   0:00 grep --color=auto unicorn

master -cのec2-user後ろの数字がUnicornのプロセス本体のPID

$ kill <確認したunicorn rails masterのPID>

Unicornのプロセスを停止

再度確認のため

[ec2-user@ip-〇〇〇-〇〇-〇〇-〇〇 <リポジトリ名>]$ ps aux | grep unicorn
...
ec2-user 17911  0.0  0.2 110532  2180 pts/0    S+   02:05   0:00 grep --color=auto unicorn

停止を確認したら

自分のローカルのターミナルのアプリケーションのディレクトリーで

$ bundle exec cap production deploy

で上手く動けば本番環境への自動デプロイは完了です。

今回はマイグレーションファイルをいろいろいじってたので、自動デプロイを実行する前にマイグレーションファイルのrollbackを行いました。

本番環境ではDBはとても大事なもの、(お客様とか商品情報とかいろいろ大事な情報が詰まっているもの)なのでローカルのように

$ rake db:migrate:reset

とか

$ rails db:rollback

とかでDBをリセットするのはできない仕様になっているようです。

それでも本番環境に適応しているマイグレーションファイルの中身を変えてしまった時は強制的に(擬似的に?)リセットする方法を行います。

 
[ec2-user@ip-〇〇〇-〇〇-〇〇-〇〇 <リポジトリ名>]
$ RAILS_ENV=production DISABLE_DATABASE_ENVIRONMENT_CHECK=1 bundle exec rake db:drop

その後本番環境のディレクトリで

[ec2-user@ip-〇〇〇-〇〇-〇〇-〇〇 <リポジトリ名>]
$ rake db:create RAILS_ENV=production
$ rake db:migrate RAILS_ENV=production
$ rake db:seed RAILS_ENV=production

コマンドを入力しマイグレーションフィルのcreateとmigrate

ついでにseedファイルの実行でcategoriesテーブルの作成も行いました。

運営されているサイトでこんなことしたら打首もんなので開発期間中の裏技ですね。

でもこれに慣れてしまうと後々痛い目にあいそうなので程々にしたいと思います。

【躓いているところ】

言わずもがな画像投稿欄のJavaScript

わかったようなわからないような。一進一退を繰り返しています。まだまだ先は長そうです。

【チーム開発】本日の進歩状況2020-07-16

・本日の作業

端的に言うと、LGTMをもらったプルリクエストをマージしたっていうのと、

商品出品の状況(出品中か売却済みか)を登録するためのstatusカラムの追加を行いました。

プルリクエスト、いろいろコメントがつくのかと思ったのに、一回でLGTM出てくれました👏

ただいろいろな機能を実装してプルリクエスト出してしまったので、細かいところまでは見られていないかもしれないとか思ったりしてます。

1実装1プルリクエストとか聞いたことあるし、細かくタスク分けてやった方が良かったかなと後々になって反省しました。

 

statusカラムなのですがenumを使うと簡単に実装できそうだったのでそれで行いました。

参考サイト

https://qiita.com/jnchito/items/c7e93c7a1fc7fc34a177

これなら購入するときの状況変更もなんとか上手くいきそうな気がします。

 

で、今日反省点がもう一つ。

DB設計の最新情報がマージされていたはずなのに、私のブランチには反映されておらず、反映されてない状況でmasterに反映してしまいました。

DB設計がmasterにマージされた時、自分のブランチにマージしていなかったせいですね。ちゃんと見ているつもりでしたけどやっちまいました。

今度は同じことにならないように気をつけます。

 

明日は画像投稿欄のJSとマークアップに勤しもうと思います。