-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlevel5-zh.srt
376 lines (282 loc) · 7.07 KB
/
level5-zh.srt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
1
00:00:00,710 --> 00:00:02,130
我是 Gregg Pollack,您正在收看的是
2
00:00:02,130 --> 00:00:04,500
“僵尸学 Rails”第五课
3
00:00:05,192 --> 00:00:07,950
(唱)丢掉手上的脑子和肠子
4
00:00:07,950 --> 00:00:11,100
要停止兽性,学习一点 Rails 知识了
5
00:00:11,100 --> 00:00:14,130
因为我们要与时俱进
6
00:00:14,130 --> 00:00:17,800
这是 Envy Labs 出品的“僵尸学 Rails”教学视频
7
00:00:20,020 --> 00:00:23,280
本课我们要介绍“路由”
8
00:00:24,260 --> 00:00:26,500
再来看一下程序的组件
9
00:00:26,790 --> 00:00:31,360
接受一条请求时,会经由控制器 模型 视图
10
00:00:31,360 --> 00:00:35,260
还有最后一层没介绍 那就是路由
11
00:00:36,200 --> 00:00:38,860
我们来看一下前面创建的所有链接
12
00:00:38,860 --> 00:00:45,400
要让 link_to 找到正确地地址和动作
13
00:00:45,400 --> 00:00:48,380
我们必须定义路由
14
00:00:48,830 --> 00:00:53,200
路由在 config 目录下的 routes.rb 文件中定义
15
00:00:53,620 --> 00:00:56,100
打开这个文件,可以看到这样的代码
16
00:00:56,500 --> 00:01:01,700
有一个 ZombieTwitter::Application.... 方法
17
00:01:01,990 --> 00:01:03,760
这是程序的命名空间
18
00:01:03,760 --> 00:01:06,620
再往下是 resources :tweets
19
00:01:06,620 --> 00:01:10,300
这行代码生成的就是 REST 式资源
20
00:01:11,530 --> 00:01:16,990
resources 方法会生成上一课看到的所有地址
21
00:01:16,990 --> 00:01:21,160
调用 tweets_path 时,地址是 /tweets
22
00:01:21,160 --> 00:01:23,350
执行的是 index 动作
23
00:01:23,590 --> 00:01:26,140
link_to 的地址为 tweet 时,访问的是这个地址
24
00:01:26,380 --> 00:01:28,320
执行的是 show 动作
25
00:01:28,550 --> 00:01:31,330
调用 new_tweet_path 时,访问的是这个地址
26
00:01:31,330 --> 00:01:33,060
执行的是 new 动作
27
00:01:33,400 --> 00:01:36,400
edit_tweet_path 访问的是这个地址
28
00:01:36,400 --> 00:01:38,160
执行的是 edit 动作
29
00:01:38,400 --> 00:01:42,070
这行代码还会生成其他的路由
30
00:01:42,070 --> 00:01:43,520
现在不多做介绍
31
00:01:44,340 --> 00:01:46,580
那么,我们怎么自定义路由呢
32
00:01:47,480 --> 00:01:51,730
例如,我们想让 /new_tweet 和 /tweets/new
33
00:01:51,730 --> 00:01:53,500
指向相同的页面
34
00:01:54,860 --> 00:02:00,750
/tweets/new 执行的是 TweetsController 的 new 动作
35
00:02:00,750 --> 00:02:06,260
这时,控制器名是 Tweets,动作名是 new
36
00:02:07,280 --> 00:02:08,900
要修改这个路由,我们可以这么写
37
00:02:08,900 --> 00:02:14,730
match 'new_tweet' => "Tweets#new"
38
00:02:15,320 --> 00:02:19,030
new_tweet 是地址,Tweets 是控制器
39
00:02:19,030 --> 00:02:21,510
当然,new 就是动作
40
00:02:22,510 --> 00:02:25,030
修改后,如果在浏览器中访问 new_tweet
41
00:02:25,030 --> 00:02:29,520
会得到和 /tweets/new 页面一样的内容
42
00:02:30,190 --> 00:02:36,620
接着,怎样让 /all 和 /tweets 页面的内容一样呢
43
00:02:36,970 --> 00:02:39,900
看一下控制器,会发现 /tweets 执行的是 index 动作
44
00:02:40,370 --> 00:02:41,930
所以控制器名是 Tweets
45
00:02:41,930 --> 00:02:43,750
动作名是 index
46
00:02:43,750 --> 00:02:47,540
实现的方式是,编写 match 'all' => "Tweets#index"
47
00:02:47,540 --> 00:02:52,080
那怎么在链接中使用这个 /all 地址呢
48
00:02:52,630 --> 00:02:54,520
该怎么做呢?tweets_path 不能用了
49
00:02:55,170 --> 00:02:59,200
我们要在路由中指定 :as => "all_tweets"
50
00:02:59,760 --> 00:03:04,760
这样就能在链接中使用 all_tweets_path 了
51
00:03:04,760 --> 00:03:07,000
这个地址会指向正确地页面
52
00:03:07,540 --> 00:03:12,700
如你所见,访问 /all 会看到所有的微博
53
00:03:13,250 --> 00:03:15,320
如果不想这么用呢
54
00:03:15,320 --> 00:03:20,530
我们要转向 /tweets 而不是直接渲染视图
55
00:03:20,530 --> 00:03:21,640
该怎么实现呢
56
00:03:23,470 --> 00:03:27,060
再说一下,我们要把 /all 转向 tweets_path
57
00:03:27,890 --> 00:03:31,860
路由可以这么写....
58
00:03:33,780 --> 00:03:36,450
我们也可以转向外部网站
59
00:03:36,450 --> 00:03:39,900
设置 match 'google' .... 转向 Google
60
00:03:40,380 --> 00:03:41,000
超级简单
61
00:03:43,030 --> 00:03:44,540
根路由应该怎么设呢
62
00:03:44,540 --> 00:03:50,500
当用户访问 / 时,如果想渲染微博列表该怎么做呢
63
00:03:51,010 --> 00:03:55,790
我们只需编写 root :to => "Tweets#index"
64
00:03:55,790 --> 00:03:58,110
这个路由指定了控制器和动作
65
00:03:58,110 --> 00:04:02,520
如果要在链接中使用,调用 root_path 方法就行了
66
00:04:03,710 --> 00:04:05,780
接下来介绍路由参数
67
00:04:05,780 --> 00:04:08,100
如果我们想传入一个邮政编码
68
00:04:08,100 --> 00:04:11,500
查找特定地区内的僵尸微博
69
00:04:12,010 --> 00:04:13,080
该怎么实现呢
70
00:04:13,410 --> 00:04:15,760
首先,应该怎么编写控制器层代码呢
71
00:04:16,120 --> 00:04:19,380
我们可以在 index 动作中检查传入的邮码参数
72
00:04:19,550 --> 00:04:23,800
如果传入了,就查询该邮码地区的所有微博
73
00:04:24,160 --> 00:04:29,000
否则,就直接渲染页面显示所有微博
74
00:04:31,730 --> 00:04:37,800
实现这一功能要用到的路由是....
75
00:04:38,090 --> 00:04:40,690
这里 :zipcode 的意思是
76
00:04:40,690 --> 00:04:45,220
不管这种地址中传入什么,都把内容放入 zipcode 参数中
77
00:04:45,770 --> 00:04:49,560
同样地,如果指定了路由名称,例如 local_tweets
78
00:04:49,560 --> 00:04:53,160
就可以在链接中使用 local_tweets_path
79
00:04:53,160 --> 00:04:54,500
还要传入一个邮码
80
00:04:55,780 --> 00:04:58,700
如果你常用 Twitter,可能注意到了
81
00:04:58,700 --> 00:05:02,800
twitter.com/username 这种格式的地址
82
00:05:03,150 --> 00:05:06,540
利用刚学的路由知识,怎么实现这种地址呢
83
00:05:07,090 --> 00:05:12,200
我们希望用户名地址显示这个僵尸发布的所有微博
84
00:05:12,470 --> 00:05:15,800
如果访问 /greggpollack,会显示我的所有微博
85
00:05:16,580 --> 00:05:20,600
路由可以这样设置....
86
00:05:20,600 --> 00:05:25,800
设好后就可以在链接中使用 zombie_tweets_path 了
87
00:05:26,560 --> 00:05:29,540
然后在控制器中,写入这些代码
88
00:05:29,540 --> 00:05:36,660
如果 :name 参数存在,就查询该僵尸的全部微博
89
00:05:37,860 --> 00:05:41,900
之后,如果想查看某个僵尸的微博,例如 Ash 的
90
00:05:42,260 --> 00:05:47,000
就可以直接访问 /Ash 查看他的全部微博了
91
00:05:48,120 --> 00:05:51,000
好吧,以上就是第五课的内容
92
00:05:51,360 --> 00:05:55,300
接下来要做课后练习了
93
00:05:55,300 --> 00:05:59,200
僵尸变得更血腥,脑子也变得更美味了
94
00:05:59,200 --> 00:06:03,500
翻译制作:@andor_chen on Twitter