1. Урок 1. 00:03:59
    1. From zero to deploy
  2. Урок 2. 00:01:22
    1.1 Up and running
  3. Урок 3. 00:02:30
    1.1.1 Development environment
  4. Урок 4. 00:03:01
    1.1.2 Installing Rails
  5. Урок 5. 00:02:26
    1.2 The first application
  6. Урок 6. 00:02:53
    1.2.1 Bundler
  7. Урок 7. 00:02:23
    1.2.2 rails server
  8. Урок 8. 00:01:24
    1.2.3 Model-View-Controller (MVC)
  9. Урок 9. 00:02:39
    1.2.4 Hello, world!
  10. Урок 10. 00:01:06
    1.3 Version control with Git
  11. Урок 11. 00:07:43
    1.3.1 Installation and setup
  12. Урок 12. 00:02:35
    1.3.2 What good does Git do you?
  13. Урок 13. 00:03:17
    1.3.3 GitHub
  14. Урок 14. 00:07:29
    1.3.4 Branch, edit, commit, merge
  15. Урок 15. 00:00:43
    1.4 Deploying
  16. Урок 16. 00:05:11
    1.4.1 Heroku setup and deployment
  17. Урок 17. 00:01:54
    1.4.3 Heroku commands
  18. Урок 18. 00:00:20
    1.5 Conclusion
  19. Урок 19. 00:02:02
    2. A toy app
  20. Урок 20. 00:07:03
    2.1 Planning the application
  21. Урок 21. 00:00:40
    2.1.1 A toy model for users
  22. Урок 22. 00:00:40
    2.1.2 A toy model for microposts
  23. Урок 23. 00:02:50
    2.2 The Users resource
  24. Урок 24. 00:02:24
    2.2.1 A user tour
  25. Урок 25. 00:05:39
    2.2.2 MVC in action
  26. Урок 26. 00:01:43
    2.2.3 Weaknesses of this Users resource
  27. Урок 27. 00:02:53
    2.3 The Microposts resource
  28. Урок 28. 00:01:02
    2.3.1 A micropost microtour
  29. Урок 29. 00:02:01
    2.3.2 Putting the micro in microposts
  30. Урок 30. 00:05:39
    2.3.3 A user hasmany microposts
  31. Урок 31. 00:02:23
    2.3.4 Inheritance hierarchies
  32. Урок 32. 00:03:57
    2.3.5 Deploying the toy app
  33. Урок 33. 00:00:43
    2.4 Conclusion
  34. Урок 34. 00:00:25
    3. Mostly static pages
  35. Урок 35. 00:14:39
    3.1 Sample app setup
  36. Урок 36. 00:00:27
    3.2 Static pages
  37. Урок 37. 00:08:05
    3.2.1 Generated static pages
  38. Урок 38. 00:04:05
    3.2.2 Custom static pages
  39. Урок 39. 00:01:12
    3.3 Getting started with testing
  40. Урок 40. 00:03:08
    3.3.1 Our first test
  41. Урок 41. 00:01:17
    3.3.2 Red
  42. Урок 42. 00:06:29
    3.3.3 Green
  43. Урок 43. 00:00:26
    3.3.4 Refactor
  44. Урок 44. 00:02:14
    3.4 Slightly dynamic pages
  45. Урок 45. 00:02:23
    3.4.1 Testing titles (Red)
  46. Урок 46. 00:02:55
    3.4.2 Adding page titles (Green)
  47. Урок 47. 00:10:02
    3.4.3 Layouts and embedded Ruby (Refactor)
  48. Урок 48. 00:01:17
    3.4.4 Setting the root route
  49. Урок 49. 00:07:23
    3.5 Conclusion
  50. Урок 50. 00:00:48
    3.6 Advanced testing setup
  51. Урок 51. 00:01:38
    3.6.1 minitest reporters
  52. Урок 52. 00:03:55
    3.6.2 Automated tests with Guard
  53. Урок 53. 00:00:14
    4. Rails-flavored Ruby
  54. Урок 54. 00:00:36
    4.1 Motivation
  55. Урок 55. 00:01:00
    4.1.1 Built-in helpers
  56. Урок 56. 00:07:04
    4.1.2 Custom helpers
  57. Урок 57. 00:02:44
    4.2 Strings and methods
  58. Урок 58. 00:04:56
    4.2.1 Strings
  59. Урок 59. 00:08:30
    4.2.2 Objects and message passing
  60. Урок 60. 00:03:13
    4.2.3 Method definitions
  61. Урок 61. 00:01:48
    4.2.4 Back to the title helper
  62. Урок 62. 00:00:21
    4.3 Other data structures
  63. Урок 63. 00:11:21
    4.3.1 Arrays and ranges
  64. Урок 64. 00:08:01
    4.3.2 Blocks
  65. Урок 65. 00:13:30
    4.3.3 Hashes and symbols
  66. Урок 66. 00:02:36
    4.3.4 CSS revisited
  67. Урок 67. 00:00:23
    4.4 Ruby classes
  68. Урок 68. 00:02:34
    4.4.1 Constructors
  69. Урок 69. 00:07:06
    4.4.2 Class inheritance
  70. Урок 70. 00:03:19
    4.4.3 Modifying built-in classes
  71. Урок 71. 00:02:41
    4.4.4 A controller class
  72. Урок 72. 00:05:57
    4.4.5 A user class
  73. Урок 73. 00:02:33
    4.5 Conclusion
  74. Урок 74. 00:00:35
    5. Filling in the layout
  75. Урок 75. 00:01:58
    5.1 Adding some structure
  76. Урок 76. 00:18:10
    5.1.1 Site navigation
  77. Урок 77. 00:09:13
    5.1.2 Bootstrap and custom CSS
  78. Урок 78. 00:09:29
    5.1.3 Partials
  79. Урок 79. 00:00:11
    5.2 Sass and the asset pipeline
  80. Урок 80. 00:02:24
    5.2.1 The asset pipeline
  81. Урок 81. 00:08:59
    5.2.2 Syntactically awesome stylesheets
  82. Урок 82. 00:00:36
    5.3 Layout links
  83. Урок 83. 00:03:11
    5.3.1 Contact page
  84. Урок 84. 00:04:04
    5.3.2 Rails routes
  85. Урок 85. 00:01:26
    5.3.3 Using named routes
  86. Урок 86. 00:07:50
    5.3.4 Layout link tests
  87. Урок 87. 00:00:10
    5.4 User signup: A first step
  88. Урок 88. 00:01:31
    5.4.1 Users controller
  89. Урок 89. 00:01:51
    5.4.2 Signup URL
  90. Урок 90. 00:01:51
    5.5 Conclusion
  91. Урок 91. 00:02:16
    6. Modeling users
  92. Урок 92. 00:01:05
    6.1 User model
  93. Урок 93. 00:10:02
    6.1.1 Database migrations
  94. Урок 94. 00:00:37
    6.1.2 The model file
  95. Урок 95. 00:07:00
    6.1.3 Creating user objects
  96. Урок 96. 00:04:20
    6.1.4 Finding user objects
  97. Урок 97. 00:04:54
    6.1.5 Updating user objects
  98. Урок 98. 00:01:35
    6.2 User validations
  99. Урок 99. 00:03:11
    6.2.1 A validity test
  100. Урок 100. 00:05:37
    6.2.2 Validating presence
  101. Урок 101. 00:03:42
    6.2.3 Length validation
  102. Урок 102. 00:16:28
    6.2.4 Format validation
  103. Урок 103. 00:14:47
    6.2.5 Uniqueness validation
  104. Урок 104. 00:00:24
    6.3 Adding a secure password
  105. Урок 105. 00:02:53
    6.3.1 A hashed password
  106. Урок 106. 00:01:30
    6.3.2 User has secure password
  107. Урок 107. 00:02:49
    6.3.3 Minimum password standards
  108. Урок 108. 00:06:41
    6.3.4 Creating and authenticating a user
  109. Урок 109. 00:04:56
    6.4 Conclusion
  110. Урок 110. 00:00:36
    7. Sign up
  111. Урок 111. 00:01:12
    7.1 Showing users
  112. Урок 112. 00:06:34
    7.1.1 Debug and Rails environments
  113. Урок 113. 00:06:36
    7.1.2 A Users resource
  114. Урок 114. 00:03:40
    7.1.3 Debugger
  115. Урок 115. 00:16:48
    7.1.4 A Gravatar image and a sidebar
  116. Урок 116. 00:01:27
    7.2 Signup form
  117. Урок 117. 00:08:54
    7.2.1 Using formwith
  118. Урок 118. 00:03:21
    7.2.2 Signup form HTML
  119. Урок 119. 00:00:55
    7.3 Unsuccessful signups
  120. Урок 120. 00:03:51
    7.3.1 A working form
  121. Урок 121. 00:06:52
    7.3.2 Strong parameters
  122. Урок 122. 00:11:56
    7.3.3 Signup error messages
  123. Урок 123. 00:09:22
    7.3.4 A test for invalid submission
  124. Урок 124. 00:00:36
    7.4 Successful signups
  125. Урок 125. 00:03:59
    7.4.1 The finished signup form
  126. Урок 126. 00:05:34
    7.4.2 The flash
  127. Урок 127. 00:04:34
    7.4.3 The first signup
  128. Урок 128. 00:03:50
    7.4.4 A test for valid submission
  129. Урок 129. 00:01:13
    7.5 Professional-grade deployment
  130. Урок 130. 00:01:28
    7.5.1 SSL in production
  131. Урок 131. 00:03:19
    7.5.2 Production webserver
  132. Урок 132. 00:01:43
    7.5.4 Production deployment
  133. Урок 133. 00:00:30
    7.6 Conclusion
  134. Урок 134. 00:00:52
    8. Basic login
  135. Урок 135. 00:01:48
    8.1 Sessions
  136. Урок 136. 00:00:48
    8.1.1 Sessions controller
  137. Урок 137. 00:09:24
    8.1.2 Login form
  138. Урок 138. 00:05:37
    8.1.3 Finding and authenticating a user
  139. Урок 139. 00:02:05
    8.1.4 Rendering with a flash message
  140. Урок 140. 00:04:44
    8.1.5 A flash test
  141. Урок 141. 00:01:32
    8.2 Logging in
  142. Урок 142. 00:04:48
    8.2.1 The login method
  143. Урок 143. 00:04:05
    8.2.2 Current user
  144. Урок 144. 00:09:07
    8.2.3 Changing the layout links
  145. Урок 145. 00:10:20
    8.2.4 Testing layout changes
  146. Урок 146. 00:03:00
    8.2.5 Login upon signup
  147. Урок 147. 00:05:57
    8.3 Logging out
  148. Урок 148. 00:01:47
    8.4 Conclusion
  149. Урок 149. 00:00:43
    9. Advanced login
  150. Урок 150. 00:00:39
    9.1 Remember me
  151. Урок 151. 00:11:38
    9.1.1 Remember token and digest
  152. Урок 152. 00:13:31
    9.1.2 Login with remembering
  153. Урок 153. 00:03:01
    9.1.3 Forgetting users
  154. Урок 154. 00:07:08
    9.1.4 Two subtle bugs
  155. Урок 155. 00:07:03
    9.2 “Remember me” checkbox
  156. Урок 156. 00:01:25
    9.3 Remember tests
  157. Урок 157. 00:07:32
    9.3.1 Testing the “remember me” box
  158. Урок 158. 00:08:26
    9.3.2 Testing the remember branch
  159. Урок 159. 00:04:46
    9.4 Conclusion
  160. Урок 160. 00:00:43
    10. Updating, showing, and deleting users
  161. Урок 161. 00:01:45
    10.1 Updating users
  162. Урок 162. 00:08:54
    10.1.1 Edit form
  163. Урок 163. 00:02:08
    10.1.2 Unsuccessful edits
  164. Урок 164. 00:04:02
    10.1.3 Testing unsuccessful edits
  165. Урок 165. 00:09:14
    10.1.4 Successful edits (with TDD)
  166. Урок 166. 00:01:08
    10.2 Authorization
  167. Урок 167. 00:10:05
    10.2.1 Requiring logged-in users
  168. Урок 168. 00:11:07
    10.2.2 Requiring the right user
  169. Урок 169. 00:10:31
    10.2.3 Friendly forwarding
  170. Урок 170. 00:00:34
    10.3 Showing all users
  171. Урок 171. 00:07:30
    10.3.1 Users index
  172. Урок 172. 00:05:19
    10.3.2 Sample users
  173. Урок 173. 00:05:29
    10.3.3 Pagination
  174. Урок 174. 00:08:03
    10.3.4 Users index test
  175. Урок 175. 00:03:10
    10.3.5 Partial refactoring
  176. Урок 176. 00:00:21
    10.4 Deleting users
  177. Урок 177. 00:06:12
    10.4.1 Administrative users
  178. Урок 178. 00:06:32
    10.4.2 The destroy action
  179. Урок 179. 00:09:28
    10.4.3 User destroy tests
  180. Урок 180. 00:04:08
    10.5 Conclusion
  181. Урок 181. 00:02:06
    11. Account activation
  182. Урок 182. 00:00:40
    11.1 Account activations resource
  183. Урок 183. 00:02:30
    11.1.1 Account activations controller
  184. Урок 184. 00:09:57
    11.1.2 Account activation data model
  185. Урок 185. 00:00:10
    11.2 Account activation emails
  186. Урок 186. 00:09:16
    11.2.1 Mailer templates
  187. Урок 187. 00:05:55
    11.2.2 Email previews
  188. Урок 188. 00:06:30
    11.2.3 Email tests
  189. Урок 189. 00:03:40
    11.2.4 Updating the Users create action
  190. Урок 190. 00:02:37
    11.3 Activating the account
  191. Урок 191. 00:06:55
    11.3.1 Generalizing the authenticated? method
  192. Урок 192. 00:06:43
    11.3.2 Activation edit actions
  193. Урок 193. 00:12:58
    11.3.3 Activation test and refactoring
  194. Урок 194. 00:05:47
    11.4 Email in production
  195. Урок 195. 00:00:18
    11.5 Conclusion
  196. Урок 196. 00:02:01
    12. Password reset
  197. Урок 197. 00:00:37
    12.1 Password resets resource
  198. Урок 198. 00:03:34
    12.1.1 Password resets controller
  199. Урок 199. 00:04:35
    12.1.2 New password resets
  200. Урок 200. 00:08:07
    12.1.3 Password reset create action
  201. Урок 201. 00:00:17
    12.2 Password reset emails
  202. Урок 202. 00:04:46
    12.2.1 Password reset mailer and templates
  203. Урок 203. 00:02:36
    12.2.2 Email tests
  204. Урок 204. 00:00:23
    12.3 Resetting the password
  205. Урок 205. 00:05:49
    12.3.1 Reset edit action
  206. Урок 206. 00:15:05
    12.3.2 Updating the reset
  207. Урок 207. 00:23:22
    12.3.3 Password reset test
  208. Урок 208. 00:06:11
    12.4 Email in production (take two)
  209. Урок 209. 00:00:51
    12.5 Conclusion
  210. Урок 210. 00:00:33
    13. User microposts
  211. Урок 211. 00:00:31
    13.1 A Micropost model
  212. Урок 212. 00:03:41
    13.1.1 The basic model
  213. Урок 213. 00:05:23
    13.1.2 Micropost validations
  214. Урок 214. 00:03:40
    13.1.3 User/Micropost associations
  215. Урок 215. 00:09:16
    13.1.4 Micropost refinements
  216. Урок 216. 00:00:31
    13.2 Showing microposts
  217. Урок 217. 00:08:43
    13.2.1 Rendering microposts
  218. Урок 218. 00:04:31
    13.2.2 Sample microposts
  219. Урок 219. 00:11:17
    13.2.3 Profile micropost tests
  220. Урок 220. 00:00:47
    13.3 Manipulating microposts
  221. Урок 221. 00:06:04
    13.3.1 Micropost access control
  222. Урок 222. 00:15:50
    13.3.2 Creating microposts
  223. Урок 223. 00:09:27
    13.3.3 A proto-feed
  224. Урок 224. 00:05:44
    13.3.4 Destroying microposts
  225. Урок 225. 00:12:15
    13.3.5 Micropost tests
  226. Урок 226. 00:00:24
    13.4 Micropost images
  227. Урок 227. 00:07:56
    13.4.1 Basic image upload
  228. Урок 228. 00:07:15
    13.4.2 Image validation
  229. Урок 229. 00:04:07
    13.4.3 Image resizing
  230. Урок 230. 00:11:18
    13.4.4 Image upload in production
  231. Урок 231. 00:00:27
    13.5 Conclusion
  232. Урок 232. 00:02:07
    14. Following users
  233. Урок 233. 00:01:38
    14.1 The Relationship model
  234. Урок 234. 00:06:23
    14.1.1 A problem with the data model (and a solution)
  235. Урок 235. 00:04:36
    14.1.2 User/relationship associations
  236. Урок 236. 00:03:10
    14.1.3 Relationship validations
  237. Урок 237. 00:09:49
    14.1.4 Followed users
  238. Урок 238. 00:03:40
    14.1.5 Followers
  239. Урок 239. 00:00:34
    14.2 A web interface for following users
  240. Урок 240. 00:02:37
    14.2.1 Sample following data
  241. Урок 241. 00:23:32
    14.2.2 Stats and a follow form
  242. Урок 242. 00:19:02
    14.2.3 Following and followers pages
  243. Урок 243. 00:09:08
    14.2.4 A working follow button the standard way
  244. Урок 244. 00:14:14
    14.2.5 A working follow button with Ajax
  245. Урок 245. 00:07:49
    14.2.6 Following tests
  246. Урок 246. 00:00:33
    14.3 The status feed
  247. Урок 247. 00:00:39
    14.3.1 Motivation and strategy
  248. Урок 248. 00:10:26
    14.3.2 A first feed implementation
  249. Урок 249. 00:08:02
    14.3.3 Subselects
  250. Урок 250. 00:00:41
    14.4 Conclusion