週報 4/5(月)~4/11(日)
4/5(月)~4/11(日)の一週間の学習の振り返りをざっくり。 先週の3/29(月)~4/4(日)の週報を書いてないのでそちらもざっくり振り返る。
今週の学習時間
プラクティス外の学習・勉強会への参加は含めない。 目標達成🎉
日付 | 目標 | 実際 |
---|---|---|
4/5(月) | 2:00 | 0:00 |
4/6(火) | 2:00 | 1:45 |
4/7(水) | 2:00 | 3:15 |
4/8(木) | 6:00 | 5:15 |
4/9(金) | 2:00 | 3:15 |
4/10(土) | 6:00 | 7:15 |
4/11(日) | 6:00 | 7:30 |
合計 | 26:00 | 28:15 |
先週
3/29(月)
やったこと
- ユーザー編集画面の作成
/users/edit
というURLに違和感- アプリケーションルートの画面を「you are on rails」 ではない画面にしたかったが、できず
- 18:30-19:30 世界最高のチーム/グーグル流「最少の人数」で「最大の成果」を生み出す方法という本の一章を読んだ。
考えたこと
朝活した🌟必要なページはほぼ完成したと思う!
3/30(火)
やったこと
- 昨日の日報提出
- i18n課題の再提出
- URLが
users/edit
の理由を知る。 →/users/:id/edit
だと、ログイン中のユーザが自分以外を編集しようとしていないか?をチェックする認可の処理が必要になる。実際のアプリケーションの自分のユーザーページのURLを見たら、current_user/edit
やusers/settings
になっていた。なるほど〜
考えたこと
今日は早起きに失敗してしまったので、ほとんど学習できなかった。ずっと読みたいと思ってて一ヶ月ほど積ん読していた本を読み始めた💪 学習に集中できない時に少しずつ読み進めたい。
3/31(水)
やったこと
- 画面遷移図の変更
- ログインしたらユーザー一覧にリダイレクトさせたい→できず
- ユーザー編集画面で更新した情報が、更新できてないことに気づいた→未解決のまま
- ログイン前に/books に行けないようにする:
before_action
を使う - 夜は友人と会う約束があったので学習せず。
考えたこと
- やりたいことを都度検索して記事のコードをその場その場でコピペしても、その場しのぎの解決になっていて、自分が理解していないと意味がない&Qiita記事は前提がそれぞれ違うし間違っている可能性もあるので、やめる。
- Railsの仕組みを分かってなさすぎる。今、Railsの仕組みがわかっていないのにdeviseを導入しているから、コードを書くときに、Railsのもともとの機能をつかえばいいのかdeviseを使えばいいのか分からず、混乱している状態。
- 他の方の日報を見ていると、deviseあたりで、「Railsを全然分かってないので、書籍などで体系的に学んだほうがいいかも」と感じている方をチラホラ見かけたので、私もそうすることにした。
- 教材が色々あって迷ったが、独習Railsがとても分かりやすいので一通り目を通すことにした。一回目を通すと、詰まったときにあそこに書いてあったな〜と思い出せるので、頭の中にインデックスを貼る方式で読もうと思う。が、devise課題に関係ありそうなところは自分のコード見つつしっかり読む。
- 明日から独習Rails読む💪
4/1(木)
やったこと
考えたこと
- 私含めてみなさんが、「Railsはいろいろやってくれていて、どういう仕組みでこうなったか分からない」となるのは、この設定より規約という基本理念からきているのか〜なるほど。deviseも導入したらすぐにユーザー登録・ログイン/ログアウト機能・ユーザー編集ができてて、びっくりしてたけど、この理念からきていたのか。
- プログラミング言語には、設定重視だったり、規約が多すぎたり色々な言語があるらしいが、webアプリを作るにあたって1から全部の設定を書くより、「どのwebアプリでもこの機能は使うよね」、というものがデフォルトでオンになっている方が、毎回同じ設定を1から書くより効率的でよさそうと思った。Railsが色々やってくれている仕様になっている理由が分かってちょっとスッキリ
- 今日はたくさん寝たはずなのに学習中も眠くてあんまり集中できなかったのが辛かった。今週はそんな週だと割り切るようにする。
4/2(金)~5(月)
おやすみ😪
今週
4/6(火)
やったこと
- 独習Rails:3章読む
- モデルはデータベース自身のことではなく、データベースを便利に扱えるようにデータベースとやり取りする役割を持つ。 →モデル=DBと勘違いしていた。
考えたこと
- 忘れかけていた
scaffold
を思い出せた。初めてscaffoldを実行したときよりも深く理解できていると思う。 - 2日の金曜から4日間学習していなかった💦元気が出てきたので今日からまたがんばる。「ちょっとずつでいいから毎日やる」を実行するのって結構難しい。
- devise課題のコードの現況や残りのタスクがどうだったのか日にちがあいて、忘れかけているので進捗確認する。
4/7(水)
やったこと
- 独習Rails3章で気になったことを調べた
- before_actionとは
- form_withヘルパー
- form_withとform_forのちがい
- deviseはform_forで書かれいるが、現場ではform_withに書き直しているのか?
→メンターさんにコメントで教えていただいた。現場ではすぐに全部
form_for
をなくそうというほど急ぎで対応はしていないようだ。
- たまった日報の提出
考えたこと
- deviseのコードの意味がわかってきて嬉しい。
form_for
を理解できた
4/8(木)
やったこと
- 独習Rails3章
- 部分テンプレート
- renderメソッド
- deviseの部分テンプレート
- モデルに使えるメソッド
- 「登録する」ボタンをクリックした時に裏側で何がおこっているか(時系列)
- 部分テンプレート
- deviseについて調べた
- deviseはデフォルトだとモデル,コントローラ,ビューが無い状態→カスタマイズしたければ
rails g
で作成する rails g devise User
は何をしてるのか?rails g devise:views
とrails g devise:views users
のちがい →READMEを読んでもよく分からず。 →メンターさんに、「後者を使うのはscoped viewというもので、管理者ユーザを別モデルのadminsにする場合などに、usersとadminsでそれぞれ別のviewを使いたかったりして、そういうとき使うというイメージ」と教えていただいた。
- deviseはデフォルトだとモデル,コントローラ,ビューが無い状態→カスタマイズしたければ
考えたこと
- 今回の課題はモデルが一つなので、
rails g devise:views
の実行が正しいと分かった。Qiita記事など見ると、モデルが一つの場合でもrails g devise:views <モデル名>
を実行している記事があり、どう使い分けたらいいか悩んでいたが、正しい情報をメンターさんに教えていただけてよかった。 なんとなくviews/users/
の直下にdeviseのviewsもあった方がいいかなと思って、rails g devise:views
を消してrails g devise:views users
を実行しなおそうとしていたので、実行する前にしれてよかった。 - 私がdeviseで詰まっているメインの原因は、実装したいことをdeviseを使ってやればいいのか、Railsにもともと備わっている仕組みでやればいいのか分からないところだと思う。詰まったところを解決できそうなところはとくに重点的に読みたいので残りの要件とか課題を整理しようと思う。
4/9(金)
やったこと
- 日報提出
- 4/7(水)
- 4/8(木)
- READMEの解読:「Configuring Models」の前まで。 devise/README.md at master · heartcombo/devise
考えたこと
- deviseのカスタマイズ方法 https://github.com/heartcombo/devise/tree/master/app ここを見れば、deviseのコントローラやビューのコードが見れて、デフォルトの状態だとこのコードが参照される。 最初、 rails g devise:viewsやrails g devise:controllers を実行したらカスタマイズできることを知らなくて、deviseのコントローラやビューを探しても該当するコードがアプリケーションに無くて混乱した。 Railsの設定より規約の理念を知ってからこの仕様にしっくりきている。
- READMEをがんばって読んだ!一次情報大事。 Qiita記事のコードを安易にコピペしない。
4/10(土)
やったこと
devise課題
- deviseのコントローラをカスタマイズする
- アプリの利用にはログインを必須にする
- リダイレクト先を設定する
- ユーザー情報を更新できない問題を解決
- 更新時のリダイレクト先を自分のユーザー詳細画面にする
- 書いたコードの意味を調べる
- パスワードを忘れたらパスワード再設定メールを送信してパスワードを再設定できる
- letter_opener_gem導入
- i18n化
- devise-i18nのREADMEを読む
rails g devise:i18n:locale ja
でdevise.views.ja.yml
を作成
考えたこと
- 初めてdeviseを導入したときはコードの意味がわかってなかったが、今日はRailsの仕組みを理解した上で、READMEを見ながらコードの意味を理解して課題を進められた。成長を感じる💪
- 詰まっていて後回しにしていたタスクを全部実装できた!うれしい🎉
考えたこと
4/11(日)
やったこと
- devise課題
- i18n化
- Gitでの疑問
- 提出🎉
- 日報提出
- 4/9(金)
- 4/10(土)
- 4/11(日)
- 先週と今週の週報を書いた(この記事)
考えたこと
deviseの課題を提出できた🎉 この課題を通してRailsの仕組み、deviseの使い方への理解を深められたので嬉しい。
今週の振り返り
✅ できたこと/できるようになったこと
- deviseの課題を提出できた🎉
- Railsとdeviseの仕組みがわかってきた
- devise,letter_opener_web,devise-i18nのREADMEを翻訳しながら読んだ
- 遅延評価勉強法を実践できている。「全部理解してから始めたい病」を克服できている✨ 勉強が苦手な人向けの「遅延評価勉強法」 : けんすう日記 分からないことだらけの課題と向き合うよりも、教科書を順に読んでいくほうが、壁に当たることもなく、メンタル的にも楽だが、要件を実装するために情報収集している時が一番身になっていると感じるので、これからもこの方法を実践していく💪
- 学習時間が目標を上回った。
✅ "こうしたらもっと良かった"と思うこと
- この記事(Railsでユーザー認証機能を実装しよう~定番のgem「devise」活用法(1) (1/4):CodeZine(コードジン))をいきなり実行する前に、deviseのREADMEを読んでいればもっ早く理解を深められたかなと思う。公式ドキュメントは、英語だったり、日本語になっていてもQiita記事に比べて分かりづらい日本語だったりで敬遠していたが、今週改めて一次情報にあたる大切さを痛感した。