Railsチュートリアル解説動画の無料視聴を有効に使おう!(後編)
この記事では Railsチュートリアルの「11〜14章」の内容についてまとめてみました。前編「1〜7章」、中編「8〜10章」もあるので良かったらご覧ください。
Rails チュートリアル11章からは、10章までで学んだ Rails の基本的な内容を生かした応用的な内容となっています。難しいと感じるときはもう一度10章までを復習してみたり、解説動画を利用していただけると学習の大きな支えになるかと思います。
この記事では、私が勉強になったオススメの解説箇所をまとめてみたので、気になったところは「お試し視聴(30分無料)」を有効に活用してみてください🎥
メール認証の仕組み
認証の仕組みは、これまでの章でもおこなってきたのですが、今回はメール機能を使っての認証です。大体の流れは今までと同じだけど、難しく感じられる方は、「11章 前編 3. メール認証の仕組み」から確認しながら進めましょう。
もし、ここの説明を聞いても全然ピンとこないという方は
「6章 後編 10. パスワードの実装」、「9章 5. ログイン状態の認証」
を分かるところまで遡って順番に理解できると良さそうです。
create と save の違い
🔼「コールバック処理」の時の、before_save と before_create の違いです。
皆さんは、このふたつの違い説明できますか?
なんかあやしいぞ、という方は「11章 前編 7. メソッド参照用のメソッドを使う」のところを見てみるといいです。英語の意味をよく考えれば分かりそうな気もするんですけど、ちゃんと説明を聞くと、あやふやな部分がスッキリするのでぜひ見てみてください。
Action Mailer の正体についての解説 「11章 前編 10. Action Mailer の実態と実装 」も興味深いのでおすすめです。
黒魔術(メタプログラミング)を知る
Railsチュートリアル 11.3 「アカウントを有効化する」の場面です👇
解説動画では「11章 後編 2. authenticated? の抽象化 」〜で、この部分をかなり丁寧に説明してくれています。
Ruby の「send」メソッドを使って実装していくのですが、これが凄い!
文字列を使えるようになると、うまくリファクタリングしながらメソッドを切り替えることが出来るのですね。
参考になったのが 「11章 後編 1. 認証情報を取得と比較 」の終わり頃のsend メソッドを使わない場合の実装方法 を実演してくれたところ。
🔼(私だったらまずこうやってしまうかも...😂)答えをただ写して実装するよりも、「このコードが、こう短縮できるんだ」と理解できた箇所だったので、Rubyに詳しくなりたい!という方はぜひご覧になってください。
テストで便利な assigns メソッド
解説動画の「11章 後編 9. assigns メソッド 」では、スライド付きで説明があります。
さらに「12章 後編 9. まとめと質問コーナー 」でも質問者さんから assigns メソッドについての質問があり、安川さんの解説がここでも聞けます。どういう場合に使用するのか?というところが勉強になりました。知っていると便利な機能の解説なので、気になる方はぜひ覗いてみてください。
beforeフィルターを使ったリファクタリング術
ここも、テキスト版では触れられていないところの解説が盛りだくさんで、ものすごく勉強になった部分です。パスワードの再設定を実装する大事なコードなのですが、コピペだけで進めていたら絶対に理解できないところなので、しっかり学習するべき部分だと思いました。
「12章 後編 4. パスワードの更新 〜 5. before_filter のもう一つの使い方」では、テキスト版では触れられていない解説が盛りだくさんです。
安川さんの意見がここで炸裂!チュートリアルではこうなっているけど、実際に使うならこれは開発者側には優しくない使い方かも...😭あちこちに情報が飛んでしまっていて確認しづらいのです。なるほど!と思わされる解説です。
DRYに書くのはもちろん大事だけど、分かりづらくなるなら本末転倒、なのかもしれませんね💦(うちの会社ではやらないようにしていますって言われているから気をつけないと!w)興味深い内容なので、オススメの箇所です。
Ruby 「不等号を使った時間」の読み方に注意!!
🔼この部分です。テキスト版でも詳しく説明がされています。が、すんなり理解ができない私...😭ググってもここの部分の説明は全然出てこないのです💦
ありがたいことに「12章 後編 6. パスワード更新4つの処理 」のところでスライド付きの説明があります。
時間の不等号、理解が難しいですね。頭こんがらがりそうになった方は、一度ここの解説を聞いてみると良さそうです😊
<おまけ>
その後、社内でこんなコードを紹介してもらいました✨
# 時刻の演算
# 2.hours.since(reset_sent_at).past?
# の方が読みやすそう
2.hours.since(3.hours.ago).past?
# => true
2.hours.since(1.hours.ago).past?
# => false
こんな風にも書けるんですね! 確かに読みやすい...😳
( @hanachin_ さんありがとうございました!)
DB設計(モデリング)を体験してみる
🔼表を見て、この通りにマイグレーションファイルを作成していけばいいのだけれど...。どうやってカラムの種類を作るか決めているんだろう?🤔
テキスト版では「型」の説明に留まっていますが、解説動画ではモック画面を見ながら、どんな風に追加するカラムを決めていくのか見れるようになっています 👀「13章 前編 1. Micropostの実装の進め方 」のところです。
いつかは自分で何か作りたい!と思われている方がほとんどだと思うので「モデリング」ができると可能性がグンと広がりそうですね 😆
Ruby 「->」 この矢印は何者だ?
default_scope というものを使って、DBさんにワガママを聞いてもらうところは何となく分かりやすいかと思いますが、この「->」という記号について何だか難しい説明がありますね🤔
ラムダ式? Procオブジェクト?なんだそれ...😭
「13章 前編 5. Micropostモデルの順序と依存 」を見てみると
🔼テキスト版ではこれだけの例ですが、別の例や Rails でよく使われている「yield」もこの仕組みが使われているなど、興味深い解説があります。
知れば知るほど、RailsやRubyの深い部分がもっと気になりますね 👀
親クラスへ移動させるリファクタリング術
「13章 中編 8. filter を使ってアクセス制限 」のところです。
何度も出てきますが、同じコードを書くというのは Rails の設計思想の『DRY』に反してしまいます🙀複数のコントローラをまたいで、同じアクションがある場合はこんな風に書けば、DRYに実装していけるという事が分かります。
これはビューでもモデルでも同じ事が言えるので、きちんとRailsをマスターして、すっきりと綺麗に使いこなせるようになりたいですね。
パーシャル内のエラーメッセージを使い回す術
ここの2行目、render に引数「object: f.object」が渡されているところですが、ちょっと難しかったです。
「13章 後編 2. Micropost の投稿フォーム 」の解説を聞いてみると...
こんな風にリファクタリング出来るんだ〜!と、納得出来ました。こういうところがジワジワと分かってくると嬉しいです。
🔼render されている先のパーシャルでは@userが使われている。ここを@micropostでも使えるようにするぞ、の場面。これをマスターすれば、コピペしないでちゃんと使いまわせますね✨
一つ前のURLを返す request.referrer
マイクロポストの削除の部分です。
🔼ここの destroy アクションに出てくる request.referrer || root_url というコードが難しかったのですが「13章 後編 7. マイクロポストを削除」の後半部分を見てみると、詳しく説明があります。
🔼一つ前のページには、何パターンあるか?の場面です。これを覚えると便利そうですね😊
ちなみにちょっと面白いこんな記事も発見 🔽
accept でフロント側にもバリデーション
Rails チュートリアルでは、幅色く様々な知識を授けてくれるのですが、この部分も Rails の機能ではなくHTML の機能の解説です。
「13章 後編 10. 画像の加工や検証 」では、画像を投稿する際にフロント側でもバリデーションをかけてあげる方法について学べます。ここの場面は実際に動画内のファイルアップローダーを見ながら進められているので、テキストだけの時よりも体感的に学べます。
🔼バックエンドで投稿できる画像の種類を指定してバリデーションをかけてあげても、まだ選択できてしまうしアップロード自体はできてしまう。(アップロード後、バリデーションのエラーメッセージが出る。)初めから選べないようにするにはどうすればいいのだろう?の部分です。
HTMLをしっかり学習されてきた方は分かるところかもしれませんが、私にとってはかなり勉強になりました。
フォロー・フォロワーのモデル設計
「フォローとフォロワー」をどう設計するかを理解するところではないでしょうか?まずはフォローするってどういう事?から丁寧に解説をしてくれるのが「14章 前編 」です。
🔼一体どうしたらいいんだ 😭
この実装方法は「14章 前編 4. Relationshipモデルの実装 」からをじっくり聞いてみると、テキストだけだと分かりづらい部分も理解しやすくなっていると思います。
中でも「8. active_relationships の確認」の 38:55〜からの説明は「belongs_to」や「has_many」の実態について説明されていて、これまでモヤモヤしていたことが一気に解消される方が多いのではないかな?と思います。
has_many 、attr_accessor など、エディタ内で色が付いているのには、ある役割があるからだったのですね。ここは、ぜひ聞いてほしいおすすめポイントです。
「14章 前編 11. 質問コーナー 」の 1:00:42〜からは、モデル設計の大事さも知ることができます。
「14章 前編 13. メソッドを定義する場所 」では『 fat コントローラ問題 』という話題について解説があります。コントローラの肥大化を防いであげて、DRYにしてあげる工夫について勉強になりました。
resourcesの新たな使い方
プレーンな resources だけでも十分凄いと思っていたのですが、こんなに色んなことができるんだ、と感心してしまいました。
「14章 後編 3. following と follower の routing を追加する 」の部分で
「 member 」というメソッドを使って、普通の resources で出来るルーティングに、好きなルーティングを追加してあげることができるという解説があります。ちゃんとパスも使えて、便利です。
他にも Railsガイドのルーティング の部分でも詳しく説明がされているので、合わせて見てもらうと更に理解が深まるんじゃないかと思います💪
1つのビューだけで Following・Followers を実装する
「14章 後編 8. Following と Followers の実装 」の部分です。
アクションは違うけど、一つのビューをうまく使い分けて共通で使えるものにしていこうという実装方法です。
この解説で安川さんも言っていましたが、チュートリアル内ではこのような実装方法もできるよという紹介にすぎず、実装方法はアイデア次第で色んなことができるので、「 俺の実装方法の方がクールだぜ!」というのを見つけてみるのも面白そうですね😁
Ajax で Follow ボタンを実装する
Rails チュートリアルでは、Follow・Unfollow ボタンの実装方法を2通り紹介してくれています。
応用編として、この Ajax を使った実装方法を紹介してくれているのが「14章 後編 12. Followボタン ajax 実装編 」です。
🔼 「 Follow 」ボタンを押して、変わる部分はどこだろう?
ここではテキスト版では触れられていなかった「 JavaScriptは使う場所を吟味し、多用するべからず 」という話が興味深かったです。詳しく知りたい方はぜひ聞いてみてくださいね。
🔼この respond_to メソッドについては、「14章 後編 20. 質問コーナー 」2:04:30〜 付近でもかなり詳しく解説があるので、そこも合わせて見てみると更に理解が深まると思います。
.jsonや.mdを使った実際のブラウザ画面も見せてくれたりと、チュートリアルの内容にとどまらず様々なことを教えてくれるのでありがたいですね。
SQL 力を高めてステータスフィードを完成させよう
Rails チュートリアル、最後の難関「ステータスフィード」の実装部分です。
「14章 後編 14. ステータスフィードを完成させる 」からじっくり聞いていくと、SQL文に初めて触れるという方でも分かりやすいように説明があります。
Twitterでいうタイムラインのようなものですね。「 SQL 」は結構難しく感じる方も多いと思います。
「14章 後編 18. サブセレクトを使う 」では、複雑な検索結果も高速に引っ張ってこれる SQL の技について学べます。
🔼 テキストだけだと意味がわからなかったところでしたが、説明を聞きながらだととても分かりやすかったです。
あとがき
お疲れ様でした✨この解説動画では、テキスト版だけでは理解しづらい部分を丁寧に解説してもらえるだけではなく、チュートリアルの内容以外の様々なことを安川さんに教えてもらえました。現場により近い具体的な説明を聞くことで、グッと知識が深まったと思います。
これからプログラミングを学んでいく方にはもちろん、更に知識の定着をはかってみたい方にもお勧めできる動画でした。きっと皆さんそれぞれ色んな気付きがあるんじゃないかなと思います😊
私もこれからも何度も復習しながら、更なるレベルアップに励んでいこうと思います!
ちなみに今回私は「法人プラン」で動画を見させていただいたのですが、社員研修などで大いに役立ってくれるのではないかと思うのでご紹介させていただきますね✨
🔼こんな風にダッシュボードで簡単に管理ができ、全員分の動画を買うよりもコストがかからないので、研修にピッタリですね✨
🔼ダントツで見てるのが私ですね ...😂
それでは最後まで見て頂き、ありがとうございました💖