konchanxxx / menta

MENTAのタスク管理用リポジトリ
0 stars 0 forks source link

困っている事 その2(slackから転載) #3

Closed shyuhei-kaneko closed 5 years ago

shyuhei-kaneko commented 5 years ago

概要

現在railsで作成中のシステムが御座います。 概要といたしましては勤怠情報をを管理するシステムとなっています。 ・サインアップ、ログイン機構がございます。 ・ユーザー情報とそれに紐づく勤怠情報が存在しています。それぞれモデルに記録していきます。 ・ログイン後に勤怠情報を記録・表示するページが表示されます。 ・ユーザーは自身のみの勤怠情報や基本情報に関して編集を行う事が可能です。 ・他のユーザーとは別の管理者アカウントという物が存在しています。   管理者は他のユーザー一覧を閲覧、編集が可能となっています。   管理者はユーザー一覧から任意のユーザーを選択後、勤怠情報を自由に編集する事が可能です。 簡単では御座いますが以上がシステムの概要となります。

Git Hub URL https://github.com/shyuhei-kaneko/Intern-Attendance-B/tree/master masterブランチを参照願います。

管理者情報 メールアドレス admin@gmail.com パスワード foobar 名前はadmin

実現したいこと

一ヶ月分の勤怠情報の一括編集機能を実装したい。

困っていること

勤怠情報一括編集ボタンが効かない (入力フォームへ値を入力後にボタンを押下しても反応しない) 以前はキチンと動いていました。 しかし当月の情報しか編集出来ないという不具合を対応しまして、showページ側から該当月の値(@first_day)をcontroller(def attend_edit)側へ引き渡しています。 その対応後以降、押下しても反応しなくなってしまいました・・・。

概要についてはslack DM画面キャプチャを参照願います。

困っていることがバグの場合は事象やログ、エラーメッセージをできるだけそのまま(抜粋などしない)下記に記載してください。

問題点の原因が掴めていない為対応方法が分かりません。

解決するために行ったこと

原因がわからない為対応方法が分かりません

問題となっている箇所の予想

変数等の値が上手くメソッドへ渡っていない?

konchanxxx commented 5 years ago

原因の予想

ルーティングにパラメータを含める形にしたのでその影響だと思います。routes.rbも修正しないとルーティングパスが一致しないのでエラーになっているのかなと思いました。

https://github.com/shyuhei-kaneko/Intern-Attendance-B/blob/basic/config/routes.rb#L13-L14

アクションを呼び出すためにルーティングを合わせる必要があると思います。 https://railsguides.jp/routing.html

shyuhei-kaneko commented 5 years ago

お世話になります。 アドバイスを具体的に実現するためにどうすればいいのかイマイチイメージが湧かないです・・

>ルーティングにパラメータを含める形 自分なりに予想すると、

修正前 patch 'attend_edit' => 'users#attend_update' 修正後 patch 'attend_edit/:id' => 'users#attend_update'

こういった感じになるということでしょうか??

そもそも渡すべきパラメーターがどれなのか把握出来ていません。(自分でコーディングしておいで申し訳ないです・・)

検討違いな事言っている気もするのですがお願いします😓

2019年1月8日(火) 22:35 konchan notifications@github.com:

原因の予想

ルーティングにパラメータを含める形にしたのでその影響だと思います。routes.rbも修正しないとルーティングパスが一致しないのでエラーになっているのかなと思いました。

https://github.com/shyuhei-kaneko/Intern-Attendance-B/blob/basic/config/routes.rb#L13-L14

アクションを呼び出すためにルーティングを合わせる必要があると思います。 https://railsguides.jp/routing.html

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/rexitorg/menta/issues/3#issuecomment-452300251, or mute the thread https://github.com/notifications/unsubscribe-auth/Ap4qEvzfLJNSzULw3CXtr0sz_61jc5ISks5vBJ64gaJpZM4Z1ajh .

konchanxxx commented 5 years ago

そもそも渡すべきパラメーターがどれなのか把握出来ていません。

なるほど。現状だと渡そうとしているのでfirst_dayとuser.idですね 下記の第一引数と第二引数で設定しています。

https://github.com/shyuhei-kaneko/Intern-Attendance-B/blob/basic/app/views/users/show.html.erb#L30

ただfirst_dayの仕様がわかってないので本当に渡す必要があるのか自分もまだ把握できてないです。 ロジックとしてはここですかね? https://github.com/shyuhei-kaneko/Intern-Attendance-B/blob/master/app/controllers/users_controller.rb#L119-L130

検討違いな事言っている気もするのですがお願いします😓

見当違いなことは言ってないですよ!大丈夫です!:+1:

これ勤怠についてもusersで処理してしまってるんですね。Fat controllerになるのであまり良くない実装かもしれないです。 attendance(勤怠)というresourceを編集するなら

resource :attendances

とかをroutes.rbに定義してあげるのが本来は良いです。

ルーティングでどう言ったルートが定義されているのか確認したい場合はrake routesとか使うと良いと思います:smile:

$ bundle exec rake routes | grep attend
            attend_edit GET    /attend_edit(.:format)                  users#attend_edit
                        PATCH  /attend_edit(.:format)                  users#attend_update
shyuhei-kaneko commented 5 years ago

お世話になります。

>ただfirst_dayの仕様がわかってないので本当に渡す必要があるのか自分もまだ把握できてないです。 first_dayはshowページで表示している「月」の情報です。(showページでは任意の月情報を表示させる機能がございます。) 勤怠一括編集する月の情報表示をする為にfirst_day(表示月の情報)を渡している。という意図がありました。 ・・伝わりますでしょうか?

>これ勤怠についてもusersで処理してしまってるんですね。Fat controllerになるのであまり良くない実装かもしれないです。 >attendance(勤怠)というresourceを編集するなら

>resource :attendancesとかをroutes.rbに定義してあげるのが本来は良いです。 bluk_editという名前でブランチを切ってご指摘の部分修正致しました。git hubへpushもしています。

>ロジックとしてはここですかね? そちらでなく下記になっております。 https://github.com/shyuhei-kaneko/Intern-Attendance-B/blob/bulk_edit/app/controllers/attendances_controller.rb 94行目の部分になります。

あと、困っている事についてもう一度共通認識として確認したいのですが、 attend_edit.html内にある%= f.submit "編集を保存する", class: "btn btn-primary" %>ボタン押下時に反応しなくて困っている。 skack内のDMに画像もありますのでそちらも見て頂くとイメージつきやすいと思います。 認識と相違ないでしょうか

以上です。よろしくおねがいします。

2019年1月10日(木) 4:46 konchan notifications@github.com:

そもそも渡すべきパラメーターがどれなのか把握出来ていません。

なるほど。現状だと渡そうとしているのでfirst_dayとuser.idですね 下記の第一引数と第二引数で設定しています。

https://github.com/shyuhei-kaneko/Intern-Attendance-B/blob/basic/app/views/users/show.html.erb#L30

ただfirst_dayの仕様がわかってないので本当に渡す必要があるのか自分もまだ把握できてないです。 ロジックとしてはここですかね?

https://github.com/shyuhei-kaneko/Intern-Attendance-B/blob/master/app/controllers/users_controller.rb#L119-L130

検討違いな事言っている気もするのですがお願いします😓

見当違いなことは言ってないですよ!大丈夫です!👍

これ勤怠についてもusersで処理してしまってるんですね。Fat controllerになるのであまり良くない実装かもしれないです。 attendance(勤怠)というresourceを編集するなら

resource :attendances

とかをroutes.rbに定義してあげるのが本来は良いです。

ルーティングでどう言ったルートが定義されているのか確認したい場合はrake routesとか使うと良いと思います😄

$ bundle exec rake routes | grep attend attend_edit GET /attend_edit(.:format) users#attend_edit PATCH /attend_edit(.:format) users#attend_update

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub https://github.com/rexitorg/menta/issues/3#issuecomment-452802757, or mute the thread https://github.com/notifications/unsubscribe-auth/Ap4qEhtMjU_x6vmVXUAtNsBI0TNYdsDBks5vBj3EgaJpZM4Z1ajh .

konchanxxx commented 5 years ago

勤怠一括編集する月の情報表示をする為にfirst_day(表示月の情報)を渡している。という意図がありました。 ・・伝わりますでしょうか?

なるほど、これは日付である必要はあるんでしょうか?年月情報でも良い?と思ったりしました

bluk_editという名前でブランチを切ってご指摘の部分修正致しました。git hubへpushもしています

branchをpushするだけだと修正箇所がわからないので通常その場合はPR(Pull Request)を作成していただくことになると思います! https://github.com/shyuhei-kaneko/Intern-Attendance-B/pulls このページからNew Pull Requestを選択して切り出し元branch向けにPRを作成して頂ければと思います:bow:

94行目の部分になります。

L94の部分はパラメータが渡ってきてeditのアクションが実行された時のロジックですよね?users#showを表示してeditを押下する際にリクエストパラメータとして渡すのはdef show内で定義しているパラメータになるのかなと思いました。と思ってましたが事象を勘違いしていたかもしれないです。

あと、困っている事についてもう一度共通認識として確認したいのですが、 attend_edit.html内にある%= f.submit "編集を保存する", class: "btn btn-primary" %>ボタン押下時に反応しなくて困っている。 skack内のDMに画像もありますのでそちらも見て頂くとイメージつきやすいと思います。 認識と相違ないでしょうか

こちら勘違いしていました 勤怠を編集 を押下した際にeditページに遷移しないといった事象かと思っておりました。申し訳ございません:bow:

2019-01-07 21 06 29 2019-01-07 21 06 48

添付しましたmm

こちら反応しないというのはdef attend_updateの処理を通っているかどうかは確認済みでしょうか?

あと気になったところとしてコードのインデントが揃ってないのでエディタのautoformatterとかを使って揃えた方が良いと思います:bow:

shyuhei-kaneko commented 5 years ago

>branchをpushするだけだと修正箇所がわからないので通常その場合はPR(Pull Request)を作成していただくことになると思います! https://github.com/shyuhei-kaneko/Intern-Attendance-B/pulls このページからNew Pull Requestを選択して切り出し元branch向けにPRを作成して頂ければと思います

申し訳ありません。PR作成致しました。(初めてだったのですが多分大丈夫だと思います。) https://github.com/shyuhei-kaneko/Intern-Attendance-B/pull/3

>def attend_updateの処理を通っているかどうかは確認済みでしょうか? こちら確認しました所通っていない様でした。 方法はdef attend_updateでデバックをかけて「編集を保存する」を押下してみた所デバックの反応が無かった事を確認しました。 これはルーティングの patch 'attend_update' => 'attendances#attend_update' が怪しいと考えられるのでしょうか

>コードのインデントが揃ってないのでエディタのautoformatterとかを使って揃えた方が良いと思います 知らない内容でしたので自分なりに調べて見ましたが分かりませんでした。 解説記事等ありましたら添付していただけると嬉しいです。

2019年1月11日(金) 2:01 konchan notifications@github.com:

勤怠一括編集する月の情報表示をする為にfirst_day(表示月の情報)を渡している。という意図がありました。 ・・伝わりますでしょうか?

なるほど、これは日付である必要はあるんでしょうか?年月情報でも良い?と思ったりしました

bluk_editという名前でブランチを切ってご指摘の部分修正致しました。git hubへpushもしています

branchをpushするだけだと修正箇所がわからないので通常その場合はPR(Pull Request)を作成していただくことになると思います! https://github.com/shyuhei-kaneko/Intern-Attendance-B/pulls このページからNew Pull Requestを選択して切り出し元branch向けにPRを作成して頂ければと思います🙇

94行目の部分になります。

L94の部分はパラメータが渡ってきてeditのアクションが実行された時のロジックですよね?users#show を表示してeditを押下する際にリクエストパラメータとして渡すのはdef show 内で定義しているパラメータになるのかなと思いました。と思ってましたが事象を勘違いしていたかもしれないです。

あと、困っている事についてもう一度共通認識として確認したいのですが、 attend_edit.html内にある%= f.submit "編集を保存する", class: "btn btn-primary" %>ボタン押下時に反応しなくて困っている。 skack内のDMに画像もありますのでそちらも見て頂くとイメージつきやすいと思います。 認識と相違ないでしょうか

こちら勘違いしていました 勤怠を編集 を押下した際にeditページに遷移しないといった事象かと思っておりました。申し訳ございません🙇

[image: 2019-01-07 21 06 29] https://user-images.githubusercontent.com/13507595/50983738-74517b80-1543-11e9-9402-541c4981fd4a.png

[image: 2019-01-07 21 06 48] https://user-images.githubusercontent.com/13507595/50983747-7ca9b680-1543-11e9-9640-3db097714299.png

添付しましたmm

こちら反応しないというのはdef attend_updateの処理を通っているかどうかは確認済みでしょうか?

あと気になったところとしてコードのインデントが揃ってないのでエディタのautoformatterとかを使って揃えた方が良いと思います🙇

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub https://github.com/rexitorg/menta/issues/3#issuecomment-453172265, or mute the thread https://github.com/notifications/unsubscribe-auth/Ap4qEqXZebSguNfx6f8Pq2KFzO3DZ0xZks5vB3H6gaJpZM4Z1ajh .

konchanxxx commented 5 years ago

PR作成致しました。(初めてだったのですが多分大丈夫だと思います。)

こちらdescriptionにどういった変更を入れたのかなど説明の記載をお願いします:bow:PRはコードの変更に関して説明を記載してレビューしてもらうものなので見てもらう人に自分がやったことをできるだけわかりやすく伝える必要があります

方法はdef attend_updateでデバックをかけて「編集を保存する」を押下してみた所デバックの反応が無かった事を確認しました。

こちらデバッグはどの位置に仕込みましたか?またconsole(rails sしているサーバー)のログはどのように出力されていますか?エラーログが出力されていないかなども見ていただければと思います:bow: またデバッグを細かく仕込んで変数の値に何が格納されてどう動いているかもチェックして頂きたいです:bow: あとデバックは正しくはデバッグだと思います。 https://wa3.i-3-i.info/word16465.html

知らない内容でしたので自分なりに調べて見ましたが分かりませんでした。 解説記事等ありましたら添付していただけると嬉しいです。

Cloud9のIDEではRubyのフォーマッタが定義されていないみたいですね。 https://docs.aws.amazon.com/ja_jp/cloud9/latest/user-guide/settings-project.html#settings-project-change-code-formatters

これの内容が近いですね https://www.job-support.co.jp/howto/pdf/howto01.pdf

コードの見た目をルールにしたがって綺麗に保つことは現場だと必須になっています。(綺麗に保たれていない現場もあったりしますが...

AtomやRubyMineといったエディタでは自動やショートカット一つでコードを整形する機能があったりします:bow: https://qiita.com/hagityann224/items/be07c9a5b3aceaeacd6a

shyuhei-kaneko commented 5 years ago

承知しました。先ほどdescriptionへ説明記述致しました。

2019年1月11日(金) 10:05 konchan notifications@github.com:

PR作成致しました。(初めてだったのですが多分大丈夫だと思います。)

こちらdescriptionにどういった変更を入れたのかなど説明の記載をお願いします🙇 PRはコードの変更に関して説明を記載してレビューしてもらうものなので見てもらう人に自分がやったことをできるだけわかりやすく伝える必要があります

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub https://github.com/rexitorg/menta/issues/3#issuecomment-453327379, or mute the thread https://github.com/notifications/unsubscribe-auth/Ap4qEku08R1QMm8s0l5DS79kvDX0aoTUks5vB-NogaJpZM4Z1ajh .

konchanxxx commented 5 years ago

承知しました。先ほどdescriptionへ説明記述致しました。

こちらmergeされてしまっているようです:cry:

shyuhei-kaneko commented 5 years ago

申し訳ありません。 注意致します😥

2019年1月11日(金) 11:16 konchan notifications@github.com:

承知しました。先ほどdescriptionへ説明記述致しました。

こちらmergeされてしまっているようです😢

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub https://github.com/rexitorg/menta/issues/3#issuecomment-453346361, or mute the thread https://github.com/notifications/unsubscribe-auth/Ap4qErs6ihrclyBIzG9J5l_fQTEvX07aks5vB_QMgaJpZM4Z1ajh .

konchanxxx commented 5 years ago

大丈夫です!ただ未レビューのものがmergeされるのはよくないのでrevertという処理で戻してもらうことは可能でしょうか? こちらが参考になるかなと思います! https://blog.github.com/2014-06-24-introducing-the-revert-button/

またこちらの後半部分もご確認よろしくお願いします:bow: https://github.com/rexitorg/menta/issues/3#issuecomment-453327379

shyuhei-kaneko commented 5 years ago

revertの件、承知いたしました。 只、今回の困っている事その2におきましては解決致しました! 今回、PR、merge、revertに関しても勉強になりました。 ありがとうございました。

konchanxxx commented 5 years ago

なるほど、そうなんですね!良かったです! もし時間がありましたら事象の原因とその対処方法について記載をお願いしたいです。 アプリケーションを作る際は何を考えてどう作ったかといったプロセスが重要になってくるのでそこを正しく理解しておく必要があります。PRにしても現場で使われている作業フローなのでここが疎かだと業務としては成り立ちません。転職活動する際もとりあえず動くアプリケーションを作っていることはそこまで重要ではなく、どうやって作業したか、何を考えて作業したかと言った部分の方が重要になってくると思います。 ポートフォリオとしてGitHubのリポジトリを提出することになったりすると思うんですが、PRの作成は履歴として残っているのでそこを閲覧されると丁寧に作業する人かどうかというのが一目瞭然だったりします:bow:

shyuhei-kaneko commented 5 years ago

承知致しました。 原因 htmlの記述に問題があった。 ↓ tableタグの中にformタグを書いてしまっていた。

対応内容 formタグをtableタグの上部へ移動させた。 以上です。

konchanxxx commented 5 years ago

ありがとうございます。 こちらの内容が近そうですね:smile: http://tkoyama1988.hatenablog.com/entry/2014/01/01/165437

今回の場合だと

table開始 form開始 table終了 form終了

というDOM構造になっていたのも宜しくなかったのかなと思いました:bow:

konchanxxx commented 5 years ago

@shyuhei-kaneko こちら解決したようなのでcloseしておきます:bow: