61
11ユーザーをフォローする #Railsチュートリアル http://railstutorial.jp/ Rails解説セミナー by ヤスラボ Ruby on Rails チュートリアル 実例を使ってRailsを学ぼう Michael Hartl (マイケル・ハートル)

Rails解説セミナー 第11章

Embed Size (px)

Citation preview

Page 1: Rails解説セミナー 第11章

第11章 ユーザーをフォローする #Railsチュートリアル

http://railstutorial.jp/

Rails解説セミナー

by ヤスラボ

Ruby on Rails チュートリアル 実例を使ってRailsを学ぼう

Michael Hartl (マイケル・ハートル)

Page 2: Rails解説セミナー 第11章

セミナーを 始める前に

Page 3: Rails解説セミナー 第11章

講義中に参照したリンクはコメント欄で (質問もお気軽に)

講師のターミナルは下記 URL から閲覧できます :)

http://screenx.tv/

Page 4: Rails解説セミナー 第11章

Slideshare.all.url

http://www.slideshare.net/yasulab/presentations

Page 5: Rails解説セミナー 第11章

質問はいつでもお気軽に! 個別相談は休憩や終了後に :)

Page 6: Rails解説セミナー 第11章

“話についていけなかったorz” そんなときに安心な動画サポート!

Page 7: Rails解説セミナー 第11章

http://railstutorial.jp/screencasts#ch00

Screencast.first.visit?

この2つは特に重要です

Page 8: Rails解説セミナー 第11章

Chapter.code.valid?

https://github.com/yasslab/sample_apps

Page 9: Rails解説セミナー 第11章

Ready?

Page 10: Rails解説セミナー 第11章

Chapter.code.valid?

https://github.com/yasslab/sample_apps

Page 11: Rails解説セミナー 第11章

解説セミナーを 進めていきましょう!

Page 12: Rails解説セミナー 第11章

第11章 ユーザーをフォローする #Railsチュートリアル

http://railstutorial.jp/

Rails解説セミナー

by ヤスラボ

Ruby on Rails チュートリアル 実例を使ってRailsを学ぼう

Michael Hartl (マイケル・ハートル)

Page 13: Rails解説セミナー 第11章

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 14: Rails解説セミナー 第11章

成果物: http://bit.ly/sample_app

Page 15: Rails解説セミナー 第11章

1. Relationshipモデルの作成・検証

• User 間の関連性を表すモデルの解説

• Relationshipを使ったfollowed/followerの実装

• follow関連の統計情報を表示

2. Ajaxでfollow/unfollowボタンのUIを実装

3. follow関連の情報を基に完全なfeedを実装

4. デプロイ / 拡張機能 / 今後の読み物ガイド

第11章 まとめ

Page 16: Rails解説セミナー 第11章

モックアップ

Page 17: Rails解説セミナー 第11章

現在のユーザーのプロファイル

Page 18: Rails解説セミナー 第11章

フォローする相手を見つける

Page 19: Rails解説セミナー 第11章

Follow ボタンが表示される

Page 20: Rails解説セミナー 第11章

Unfollow 切り替えと followers数++

Page 21: Rails解説セミナー 第11章

feed での表示と following 数++

Page 22: Rails解説セミナー 第11章

第11章 ユーザーをフォローする 11.1 Relationshipモデル

http://railstutorial.jp/

Railsチュートリアル

by ヤスラボ

Ruby on Rails チュートリアル 実例を使ってRailsを学ぼう

Michael Hartl (マイケル・ハートル)

Page 23: Rails解説セミナー 第11章

11.1 Relationshipモデル• User 間の関連性を表すモデルの解説

• Relationshipモデルの作成・検証

• User/Relationshipモデルの関連性を実装

• フォローしているユーザーを実装

• フォローされているユーザーを実装

Page 24: Rails解説セミナー 第11章

フォローと フォロワーの モデル設計

Page 25: Rails解説セミナー 第11章

まずは 「フォロー」 だけを考える

Page 26: Rails解説セミナー 第11章

1. 重複したカラムの更新はどうする? 2. フォロー用のテーブルの更新は? 3. フォロワー用テーブルを更新は?

Micropost と同じように設計する?

必要な抽象化が行えていない!

Page 27: Rails解説セミナー 第11章

関係性 (relationship) に注目する

Page 28: Rails解説セミナー 第11章

関係性を中心にした「フォロー」モデル

“#{テーブル名}_id” が使えないことに注目

Page 29: Rails解説セミナー 第11章

実装

Page 30: Rails解説セミナー 第11章

次に 「フォロワー」 を考える

Page 31: Rails解説セミナー 第11章

“#{クラス名}s” が使えないことに注目

関係性を中心にした「フォロワー」モデル

Page 32: Rails解説セミナー 第11章

実装

Page 33: Rails解説セミナー 第11章

11.1 Relationshipモデル• User 間の関連性を表すモデルの解説

• Relationshipモデルの作成・検証

• User/Relationshipモデルの関連性を実装

• フォローしているユーザーを実装

• フォローされているユーザーを実装

Page 34: Rails解説セミナー 第11章

第11章 ユーザーをフォローする 11.2 フォローしているユーザー用

のWebインターフェイス

http://railstutorial.jp/

Railsチュートリアル

by ヤスラボ

Ruby on Rails チュートリアル 実例を使ってRailsを学ぼう

Michael Hartl (マイケル・ハートル)

Page 35: Rails解説セミナー 第11章

11.2 フォローしているユーザー用の Webインターフェイス

• follow関連のサンプルデータを生成

• Relationshipのルーティングの実装

• 統計情報をHomeページに表示

• followingページ/followerページの実装

• フォロー/フォロー解除ボタン(form)の設置

• ページ遷移させずにformから送信する (Ajax)

Page 36: Rails解説セミナー 第11章

第11章 ユーザーをフォローする 11.3 ステータスフィード

http://railstutorial.jp/

Railsチュートリアル

by ヤスラボ

Ruby on Rails チュートリアル 実例を使ってRailsを学ぼう

Michael Hartl (マイケル・ハートル)

Page 37: Rails解説セミナー 第11章

11.3 ステータスフィード• 完全なフィードを実装する:

1. followed_users の投稿が含まれている.

2. 自分自身の投稿も含まれている.

3. follow していないユーザの投稿は含まない.

• SQLのサブセレクトを使ってフィードを改良

• 新しいフィードの画面を確認する

Page 38: Rails解説セミナー 第11章

お疲れ様でした

Page 39: Rails解説セミナー 第11章

1. Relationshipモデルの作成・検証

• User 間の関連性を表すモデルの解説

• Relationshipを使ったfollowed/followerの実装

• follow関連の統計情報を表示

2. Ajaxでfollow/unfollowボタンのUIを実装

3. follow関連の情報を基に完全なfeedを実装

4. デプロイ / 拡張機能 / 今後の読み物ガイド

第11章 まとめ

Page 40: Rails解説セミナー 第11章

なるほどRails! (達観)

Page 41: Rails解説セミナー 第11章

そしてさらなる高みへ…

Page 42: Rails解説セミナー 第11章

Railsチュートリアル完走者の開発事例

(Railsチュートリアルの歩き方より引用)

Page 43: Rails解説セミナー 第11章

開発事例: Iriguti (Pocket連携サービス)

Page 44: Rails解説セミナー 第11章

開発事例: OBOTAN (単語学習サービス)

Page 45: Rails解説セミナー 第11章

開発事例: SharePla (計画共有サービス)

Page 46: Rails解説セミナー 第11章

参考情報

Page 47: Rails解説セミナー 第11章

Rails で JavaScript を使用するhttp://railsguides.jp/working_with_javascript_in_rails.html

Page 48: Rails解説セミナー 第11章

Action Support コア拡張機能http://railsguides.jp/active_support_core_extensions.html

Page 49: Rails解説セミナー 第11章

Rails 国際化 (I18n) APIhttp://railsguides.jp/i18n.html

Page 50: Rails解説セミナー 第11章

Rails アプリケーションのデバッグhttp://railsguides.jp/debugging_rails_applications.html

Page 51: Rails解説セミナー 第11章

Ruby on Rails に貢献する方法http://railsguides.jp/contributing_to_ruby_on_rails.html

Page 52: Rails解説セミナー 第11章

お知らせ

Page 53: Rails解説セミナー 第11章

週末セミナー打ち上げhttps://coedo-rails.doorkeeper.jp/events/25304

受付中!

Page 54: Rails解説セミナー 第11章

セミナー参加回数に応じて値下げ

Page 55: Rails解説セミナー 第11章

#Railsガイド 解説セミナー開講予定!

Page 56: Rails解説セミナー 第11章

『Railsをはじめよう』解説セミナーhttps://coedo-rails.doorkeeper.jp/events/23663

初回!

Page 57: Rails解説セミナー 第11章

CoEdo.rb (全体) 懇親会https://coedo-rails.doorkeeper.jp/events/23803

同日開催!

Page 58: Rails解説セミナー 第11章

RoR ビギナーズ倶楽部http://coedo-rails.doorkeeper.jp/

Page 59: Rails解説セミナー 第11章

アドバイザーとして‘教えながら復習する’※ キャンセル待ちでもアドバイザーであれば参加可

Page 60: Rails解説セミナー 第11章

今後の進め方• 反響がある限り,継続的に実施していきます.

• 今後の解説セミナーのスケジュール → 詳細: http://railstutorial.jp/seminars

• 欠席時はスクリーンキャストで補完できます :) → 詳細: http://railstutorial.jp/screencasts

• アンケートのご回答に協力くださいコメント欄にURLを貼付けます :-) ※ アンケートに回答を送信すると, 特典動画の情報が表示されます.

Page 61: Rails解説セミナー 第11章

第11章 ユーザーをフォローする #Railsチュートリアル

http://railstutorial.jp/

Rails解説セミナー

by ヤスラボ

Ruby on Rails チュートリアル 実例を使ってRailsを学ぼう

Michael Hartl (マイケル・ハートル)