rails解説セミナー 第11章
TRANSCRIPT
![Page 1: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/1.jpg)
第11章 ユーザーをフォローする #Railsチュートリアル
http://railstutorial.jp/
Rails解説セミナー
by ヤスラボ
Ruby on Rails チュートリアル 実例を使ってRailsを学ぼう
Michael Hartl (マイケル・ハートル)
![Page 2: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/2.jpg)
セミナーを 始める前に
![Page 4: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/4.jpg)
Slideshare.all.url
http://www.slideshare.net/yasulab/presentations
![Page 5: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/5.jpg)
質問はいつでもお気軽に! 個別相談は休憩や終了後に :)
![Page 6: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/6.jpg)
“話についていけなかったorz” そんなときに安心な動画サポート!
![Page 7: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/7.jpg)
http://railstutorial.jp/screencasts#ch00
Screencast.first.visit?
この2つは特に重要です
![Page 9: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/9.jpg)
Ready?
![Page 11: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/11.jpg)
解説セミナーを 進めていきましょう!
![Page 12: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/12.jpg)
第11章 ユーザーをフォローする #Railsチュートリアル
http://railstutorial.jp/
Rails解説セミナー
by ヤスラボ
Ruby on Rails チュートリアル 実例を使ってRailsを学ぼう
Michael Hartl (マイケル・ハートル)
![Page 13: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/13.jpg)
1. Micropostモデルの作成 (cf. 第2, 4, 6章)
• UserとMicropostの関連付け − User has_many Microposts − Micropost belongs_to User
2. Micropostを表示する (cf. 第7~8章)
3. Micropostを操作する (cf. 第9章)
• アクセス制御
• Micropostを作成・削除する
第10章 まとめ
![Page 15: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/15.jpg)
1. Relationshipモデルの作成・検証
• User 間の関連性を表すモデルの解説
• Relationshipを使ったfollowed/followerの実装
• follow関連の統計情報を表示
2. Ajaxでfollow/unfollowボタンのUIを実装
3. follow関連の情報を基に完全なfeedを実装
4. デプロイ / 拡張機能 / 今後の読み物ガイド
第11章 まとめ
![Page 16: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/16.jpg)
モックアップ
![Page 17: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/17.jpg)
現在のユーザーのプロファイル
![Page 18: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/18.jpg)
フォローする相手を見つける
![Page 19: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/19.jpg)
Follow ボタンが表示される
![Page 20: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/20.jpg)
Unfollow 切り替えと followers数++
![Page 21: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/21.jpg)
feed での表示と following 数++
![Page 22: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/22.jpg)
第11章 ユーザーをフォローする 11.1 Relationshipモデル
http://railstutorial.jp/
Railsチュートリアル
by ヤスラボ
Ruby on Rails チュートリアル 実例を使ってRailsを学ぼう
Michael Hartl (マイケル・ハートル)
![Page 23: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/23.jpg)
11.1 Relationshipモデル• User 間の関連性を表すモデルの解説
• Relationshipモデルの作成・検証
• User/Relationshipモデルの関連性を実装
• フォローしているユーザーを実装
• フォローされているユーザーを実装
![Page 24: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/24.jpg)
フォローと フォロワーの モデル設計
![Page 25: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/25.jpg)
まずは 「フォロー」 だけを考える
![Page 26: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/26.jpg)
1. 重複したカラムの更新はどうする? 2. フォロー用のテーブルの更新は? 3. フォロワー用テーブルを更新は?
Micropost と同じように設計する?
必要な抽象化が行えていない!
![Page 27: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/27.jpg)
関係性 (relationship) に注目する
![Page 28: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/28.jpg)
関係性を中心にした「フォロー」モデル
“#{テーブル名}_id” が使えないことに注目
![Page 29: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/29.jpg)
実装
![Page 30: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/30.jpg)
次に 「フォロワー」 を考える
![Page 31: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/31.jpg)
“#{クラス名}s” が使えないことに注目
関係性を中心にした「フォロワー」モデル
![Page 32: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/32.jpg)
実装
![Page 33: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/33.jpg)
11.1 Relationshipモデル• User 間の関連性を表すモデルの解説
• Relationshipモデルの作成・検証
• User/Relationshipモデルの関連性を実装
• フォローしているユーザーを実装
• フォローされているユーザーを実装
![Page 34: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/34.jpg)
第11章 ユーザーをフォローする 11.2 フォローしているユーザー用
のWebインターフェイス
http://railstutorial.jp/
Railsチュートリアル
by ヤスラボ
Ruby on Rails チュートリアル 実例を使ってRailsを学ぼう
Michael Hartl (マイケル・ハートル)
![Page 35: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/35.jpg)
11.2 フォローしているユーザー用の Webインターフェイス
• follow関連のサンプルデータを生成
• Relationshipのルーティングの実装
• 統計情報をHomeページに表示
• followingページ/followerページの実装
• フォロー/フォロー解除ボタン(form)の設置
• ページ遷移させずにformから送信する (Ajax)
![Page 36: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/36.jpg)
第11章 ユーザーをフォローする 11.3 ステータスフィード
http://railstutorial.jp/
Railsチュートリアル
by ヤスラボ
Ruby on Rails チュートリアル 実例を使ってRailsを学ぼう
Michael Hartl (マイケル・ハートル)
![Page 37: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/37.jpg)
11.3 ステータスフィード• 完全なフィードを実装する:
1. followed_users の投稿が含まれている.
2. 自分自身の投稿も含まれている.
3. follow していないユーザの投稿は含まない.
• SQLのサブセレクトを使ってフィードを改良
• 新しいフィードの画面を確認する
![Page 38: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/38.jpg)
お疲れ様でした
![Page 39: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/39.jpg)
1. Relationshipモデルの作成・検証
• User 間の関連性を表すモデルの解説
• Relationshipを使ったfollowed/followerの実装
• follow関連の統計情報を表示
2. Ajaxでfollow/unfollowボタンのUIを実装
3. follow関連の情報を基に完全なfeedを実装
4. デプロイ / 拡張機能 / 今後の読み物ガイド
第11章 まとめ
![Page 40: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/40.jpg)
なるほどRails! (達観)
![Page 41: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/41.jpg)
そしてさらなる高みへ…
![Page 43: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/43.jpg)
開発事例: Iriguti (Pocket連携サービス)
![Page 44: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/44.jpg)
開発事例: OBOTAN (単語学習サービス)
![Page 45: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/45.jpg)
開発事例: SharePla (計画共有サービス)
![Page 46: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/46.jpg)
参考情報
![Page 47: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/47.jpg)
Rails で JavaScript を使用するhttp://railsguides.jp/working_with_javascript_in_rails.html
![Page 48: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/48.jpg)
Action Support コア拡張機能http://railsguides.jp/active_support_core_extensions.html
![Page 50: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/50.jpg)
Rails アプリケーションのデバッグhttp://railsguides.jp/debugging_rails_applications.html
![Page 51: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/51.jpg)
Ruby on Rails に貢献する方法http://railsguides.jp/contributing_to_ruby_on_rails.html
![Page 52: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/52.jpg)
お知らせ
![Page 53: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/53.jpg)
週末セミナー打ち上げhttps://coedo-rails.doorkeeper.jp/events/25304
受付中!
![Page 54: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/54.jpg)
セミナー参加回数に応じて値下げ
![Page 55: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/55.jpg)
#Railsガイド 解説セミナー開講予定!
![Page 56: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/56.jpg)
『Railsをはじめよう』解説セミナーhttps://coedo-rails.doorkeeper.jp/events/23663
初回!
![Page 57: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/57.jpg)
CoEdo.rb (全体) 懇親会https://coedo-rails.doorkeeper.jp/events/23803
同日開催!
![Page 59: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/59.jpg)
アドバイザーとして‘教えながら復習する’※ キャンセル待ちでもアドバイザーであれば参加可
![Page 60: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/60.jpg)
今後の進め方• 反響がある限り,継続的に実施していきます.
• 今後の解説セミナーのスケジュール → 詳細: http://railstutorial.jp/seminars
• 欠席時はスクリーンキャストで補完できます :) → 詳細: http://railstutorial.jp/screencasts
• アンケートのご回答に協力くださいコメント欄にURLを貼付けます :-) ※ アンケートに回答を送信すると, 特典動画の情報が表示されます.
![Page 61: Rails解説セミナー 第11章](https://reader034.vdocuments.mx/reader034/viewer/2022042516/55c628dfbb61eb08108b4803/html5/thumbnails/61.jpg)
第11章 ユーザーをフォローする #Railsチュートリアル
http://railstutorial.jp/
Rails解説セミナー
by ヤスラボ
Ruby on Rails チュートリアル 実例を使ってRailsを学ぼう
Michael Hartl (マイケル・ハートル)