rails解説セミナー 第14章
TRANSCRIPT
![Page 1: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/1.jpg)
14 #Rails
http://railstutorial.jp/
Rails
by YassLab
![Page 2: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/2.jpg)
![Page 3: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/3.jpg)
Slideshare
http://www.slideshare.net/yasulab/presentations
![Page 4: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/4.jpg)
Cloud9
1. 2. URL 3.
![Page 7: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/7.jpg)
URL “Collaborate” → “Group Chat”
![Page 8: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/8.jpg)
! :)
![Page 9: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/9.jpg)
Ready?
![Page 10: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/10.jpg)
!
![Page 11: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/11.jpg)
14 #Rails
http://railstutorial.jp/
Rails
by YassLab
![Page 12: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/12.jpg)
1. Micropost (cf. 2, 4, 6 ) User Micropost − User has_many Microposts − Micropost belongs_to User
2. Micropost (cf. 7, 8, 9 )
3. Micropost (cf. 10 )
4. Micropost
![Page 13: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/13.jpg)
✅ 11 📨 🔒
•
✅ 12 📨 🔓
•
✅ 13 📮 🐤
•
14 👤 👤
•
![Page 15: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/15.jpg)
1. Relationship
• User
• Relationship followed/follower
• follow
2. Ajax follow/unfollow UI
3. follow feed
4. / /
![Page 16: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/16.jpg)
![Page 17: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/17.jpg)
![Page 18: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/18.jpg)
![Page 19: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/19.jpg)
[Follow]
![Page 20: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/20.jpg)
[Unfollow] followers ++
![Page 21: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/21.jpg)
following ++
![Page 22: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/22.jpg)
14 Relationship
http://railstutorial.jp/
Rails
by YassLab
![Page 23: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/23.jpg)
![Page 24: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/24.jpg)
![Page 25: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/25.jpg)
1. ? 2. ? 3. ?
Micropost ?
: !
![Page 26: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/26.jpg)
(relationship)
![Page 27: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/27.jpg)
“#{ }_id”
![Page 28: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/28.jpg)
Relationship• Relationship
$ rails generate model Relationship follower_id:integer followed_id:integer
👇
👇
![Page 29: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/29.jpg)
( )
![Page 30: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/30.jpg)
User/Relationship
• User/Relationship
( ) 👆
👇
![Page 31: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/31.jpg)
TDD
• ID
• has_many through
• has_many belongs_to
• (TDD)
• (RED → GREEN) follow unfollow following?
![Page 32: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/32.jpg)
![Page 33: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/33.jpg)
“#{ }s”
![Page 34: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/34.jpg)
( )
![Page 35: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/35.jpg)
• has_many through ( )
• passive_relationships ( : ) vs. active_relationships ( : )
• has_many belongs_to
• ✅
![Page 36: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/36.jpg)
14 [Follow] Web
http://railstutorial.jp/
Rails
by YassLab
![Page 37: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/37.jpg)
[Follow] Web
• 🌱 follow
• 🔧 following/followers
• 🔧 Follow/Unfollow
![Page 38: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/38.jpg)
(root_url)
👈
shared/ stats
![Page 39: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/39.jpg)
/users/:id
👈
shared/ stats
![Page 40: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/40.jpg)
• Follow
• / (form)
[Follow] /users/:id
👆 users/follow
👆 users/unfollow
👇 users/follow_form
![Page 41: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/41.jpg)
👥 [Following] [Followers]
• 🔍
• ✅ TDD
• 🔧
![Page 42: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/42.jpg)
/users/:id/following
![Page 43: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/43.jpg)
/users/:id/followers
![Page 44: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/44.jpg)
: ? 🤔 /users/:id/following
![Page 45: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/45.jpg)
: ? 🤔 /users/:id/followers
![Page 46: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/46.jpg)
👥 [Following] [Followers]
• 🔍
• ✅ TDD
• 🔧
![Page 47: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/47.jpg)
• create/destroy ( )
• form (Ajax)
[Follow] ( ) /users/:id
![Page 48: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/48.jpg)
[Follow] ( ) /users/:id
![Page 49: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/49.jpg)
14
http://railstutorial.jp/
Rails
by YassLab
![Page 50: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/50.jpg)
+
following
![Page 51: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/51.jpg)
+
current_user following
microposts
![Page 52: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/52.jpg)
+
current_user.microposts + current_user.following …
microposts
microposts
![Page 53: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/53.jpg)
+
current_user.microposts + current_user.following .map do {|u| u.microposts }
microposts
![Page 54: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/54.jpg)
+
current_user.microposts + current_user.following .map(&:microposts)
microposts
![Page 55: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/55.jpg)
![Page 56: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/56.jpg)
![Page 57: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/57.jpg)
+
current_user.microposts + current_user.following .map(&:microposts)
microposts
1 ( )
![Page 58: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/58.jpg)
( )
![Page 59: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/59.jpg)
• :
1. followed_users .
2. .
3. follow .
• SQL
•
![Page 60: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/60.jpg)
![Page 61: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/61.jpg)
1. Relationship
• User
• Relationship followed/follower
• follow
2. Ajax follow/unfollow UI
3. follow feed
4. / /
![Page 62: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/62.jpg)
Rails! ( )
![Page 63: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/63.jpg)
…
![Page 65: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/65.jpg)
: Iriguti (“ ” )
![Page 66: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/66.jpg)
: SharePla ( )
![Page 67: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/67.jpg)
: ( )
![Page 68: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/68.jpg)
![Page 69: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/69.jpg)
Rails JavaScript http://railsguides.jp/working_with_javascript_in_rails.html
![Page 70: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/70.jpg)
Active Support http://railsguides.jp/active_support_core_extensions.html
![Page 72: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/72.jpg)
Rails http://railsguides.jp/debugging_rails_applications.html
![Page 73: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/73.jpg)
Ruby on Rails http://railsguides.jp/contributing_to_ruby_on_rails.html
![Page 74: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/74.jpg)
![Page 75: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/75.jpg)
!( !)
!
![Page 76: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/76.jpg)
Rails !: 2016 11 ( 30 ) : Ruby on Rails (Rails 5.0 )http://railstutorial.jp/seminars#record
![Page 78: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/78.jpg)
‘ ’※
![Page 80: Rails解説セミナー 第14章](https://reader034.vdocuments.net/reader034/viewer/2022050914/587bbb381a28abb8258b6457/html5/thumbnails/80.jpg)
14 #Rails
http://railstutorial.jp/
Rails
by YassLab