1 00:00:00,000 --> 00:00:08,560 2 00:00:08,560 --> 00:00:10,410 >> GABRIEL Guimaraes: Đây là CS50. 3 00:00:10,410 --> 00:00:14,740 Chào mừng bạn đến tuyệt vời Web Apps với Ruby on Rails. 4 00:00:14,740 --> 00:00:19,700 Vì vậy, cho bất cứ ai quan tâm đến web trang web phát triển và thực hiện, web 5 00:00:19,700 --> 00:00:26,510 các ứng dụng, Ruby on Rails là này công cụ tuyệt vời mà Twitter, GitHub, 6 00:00:26,510 --> 00:00:31,470 Groupon, và tất cả các loại thực sự tốt đẹp, và lớn, các ứng dụng web đang sử dụng trong 7 00:00:31,470 --> 00:00:33,080 trong vài năm qua. 8 00:00:33,080 --> 00:00:37,190 Và đó là một thực sự, thực sự mát mẻ tính năng, một công cụ mát mẻ, 9 00:00:37,190 --> 00:00:39,290 bởi vì nó là mới. 10 00:00:39,290 --> 00:00:43,830 Vì vậy, nó có tất cả các mới mạnh mẽ công nghệ kết hợp thành một 11 00:00:43,830 --> 00:00:49,050 khuôn khổ giúp bạn đối phó với tất cả các loại điều tuyệt vời. 12 00:00:49,050 --> 00:00:50,970 >> Nhưng một khuôn khổ là gì? 13 00:00:50,970 --> 00:00:55,700 Vì vậy, một khuôn khổ cơ bản một cái gì đó tạo ra - 14 00:00:55,700 --> 00:00:59,680 khi bạn bắt đầu một trang web, nếu bạn bắt đầu từ đầu, giống như bạn mở 15 00:00:59,680 --> 00:01:04,530 Gedit có, và bạn muốn tất cả các mã HTML của bạn, và tất cả các mã của bạn 16 00:01:04,530 --> 00:01:08,130 PHP, tất cả các CSS của bạn, tất cả mọi thứ từ đầu - 17 00:01:08,130 --> 00:01:09,690 đó chỉ là sẽ có rất nhiều công việc. 18 00:01:09,690 --> 00:01:13,940 Và một khuôn khổ theo nghĩa đen cung cấp cho bạn một nửa số trang web đã được thực hiện. 19 00:01:13,940 --> 00:01:18,070 Vì vậy, bạn bắt đầu với một nửa trang web có tất cả mọi thứ có cho bạn. 20 00:01:18,070 --> 00:01:22,690 Như các kết nối cơ sở dữ liệu, và tất cả các loại điều mà bạn phải lo lắng 21 00:01:22,690 --> 00:01:25,040 về nếu bạn đang làm nó từ đầu, bạn không phải lo lắng về những 22 00:01:25,040 --> 00:01:26,480 chi tiết mức thấp. 23 00:01:26,480 --> 00:01:32,360 >> Nhưng hôm nay chúng ta sẽ xuất khẩu một trong các trang web mà các sinh viên năm nhất của 24 00:01:32,360 --> 00:01:34,740 lớp năm 2017 có thể quen. 25 00:01:34,740 --> 00:01:40,170 Vì vậy, trang web này là trang web mà tôi đã làm cho các lớp học của chúng tôi trong mùa hè. 26 00:01:40,170 --> 00:01:46,500 Đó là một trang web nơi mà các sinh viên của lớp năm 2017 có thể đăng nhập và 27 00:01:46,500 --> 00:01:47,480 tương tác với nhau. 28 00:01:47,480 --> 00:01:49,610 Và sau đó là một bản đồ - 29 00:01:49,610 --> 00:01:51,210 tất cả mọi người, mà con người. 30 00:01:51,210 --> 00:01:56,970 Và chúng tôi đã có một trò chơi cuốn sách, một trò chơi bài hát nơi chúng ta đã thấy những bài hát của người dân và 31 00:01:56,970 --> 00:01:57,970 sách của người dân. 32 00:01:57,970 --> 00:02:00,480 Những gì họ thích để đọc, những gì họ thích nghe. 33 00:02:00,480 --> 00:02:06,830 Và phần thú vị nhất của nó là mà nó theo nghĩa đen đã cho tôi ba giờ 34 00:02:06,830 --> 00:02:07,840 mã tất cả của nó. 35 00:02:07,840 --> 00:02:13,050 Bởi vì nếu tôi đã phải làm tất cả mọi thứ từ đầu, như mở gedit, nó 36 00:02:13,050 --> 00:02:16,400 có lẽ đã tôi 20, 30 giờ. 37 00:02:16,400 --> 00:02:20,210 Nhưng với Ruby on Rails, bởi vì tất cả mọi thứ đã được thiết lập đối với tôi, 38 00:02:20,210 --> 00:02:25,550 nó chỉ mất ba hoặc bốn giờ, hoặc một cái gì đó như thế. 39 00:02:25,550 --> 00:02:27,580 >> Vì vậy, những gì là Ruby on Rails. 40 00:02:27,580 --> 00:02:32,720 Ruby on Rails, một lần nữa như chúng ta đã cho biết, là một khuôn khổ. 41 00:02:32,720 --> 00:02:34,800 Đây là một hình ảnh của một khuôn khổ. 42 00:02:34,800 --> 00:02:37,460 Vì vậy, bạn sẽ bắt đầu xây dựng một nhà, bạn đã có một nửa số 43 00:02:37,460 --> 00:02:38,320 nhà thực hiện. 44 00:02:38,320 --> 00:02:38,970 Đó là khuôn khổ. 45 00:02:38,970 --> 00:02:40,560 Và Ruby on Rails là chính xác như thế. 46 00:02:40,560 --> 00:02:44,440 Và bạn nên suy nghĩ về nó như là, bạn bắt đầu một trang web, bạn bắt đầu trang web của bạn 47 00:02:44,440 --> 00:02:48,830 ứng dụng, chúng tôi đã có một nửa của nó được thực hiện ở đó. 48 00:02:48,830 --> 00:02:50,400 Nhưng trước hết, Ruby là gì? 49 00:02:50,400 --> 00:02:53,510 50 00:02:53,510 --> 00:02:58,310 Ruby on Rails sử dụng giao diện mô hình điều khiển, đó là mô hình, trong đó 51 00:02:58,310 --> 00:02:59,930 là một thực sự thú vị - 52 00:02:59,930 --> 00:03:04,250 và tất cả các ứng dụng hiện nay sử dụng một cái gì đó như thế. 53 00:03:04,250 --> 00:03:08,630 Ý tưởng này tách mọi thứ vào ba phần, mô hình, quan điểm, và 54 00:03:08,630 --> 00:03:09,630 bộ điều khiển. 55 00:03:09,630 --> 00:03:11,950 Chúng ta sẽ nói một chút thêm về điều này sau. 56 00:03:11,950 --> 00:03:13,400 >> Đầu tiên, Ruby là gì? 57 00:03:13,400 --> 00:03:14,500 Vì vậy, đây là Ruby. 58 00:03:14,500 --> 00:03:17,850 Và đây là biểu tượng của ngôn ngữ được gọi là Ruby. 59 00:03:17,850 --> 00:03:24,170 Ruby là một trong những giải thích hơi mới ngôn ngữ, do kịch bản. 60 00:03:24,170 --> 00:03:29,530 Đó là một ngôn ngữ không phải biên soạn như C. Nó được biên dịch trên chạy. 61 00:03:29,530 --> 00:03:33,220 Vì vậy, đó là tốt bởi vì, giống như PHP, ví dụ cũng được giải thích, là 62 00:03:33,220 --> 00:03:33,960 không được biên dịch. 63 00:03:33,960 --> 00:03:35,710 Đó là tốt bởi vì di động của mình. 64 00:03:35,710 --> 00:03:39,740 Vì vậy, bạn chỉ cần vượt qua mã của bạn từ một máy khác. 65 00:03:39,740 --> 00:03:44,440 Từ một máy tính Linux, để Windows máy, một máy Mac hoặc Apple máy, hoặc 66 00:03:44,440 --> 00:03:45,240 một cái gì đó như thế. 67 00:03:45,240 --> 00:03:49,160 Và bạn không cần phải lo lắng về chi tiết về mỗi cụ thể 68 00:03:49,160 --> 00:03:49,890 hệ điều hành. 69 00:03:49,890 --> 00:03:51,330 Nó sẽ làm việc ở khắp mọi nơi. 70 00:03:51,330 --> 00:03:54,700 >> Và Ruby là một ngôn ngữ - 71 00:03:54,700 --> 00:03:56,920 các bạn có thể nhớ những điều này. 72 00:03:56,920 --> 00:04:01,440 Người sử dụng chức năng băm thực hiện C cho bảng băm 73 00:04:01,440 --> 00:04:04,860 tuần trước và đã có tất cả các loại các lỗi phân khúc. 74 00:04:04,860 --> 00:04:12,360 Và sau đó điều lo lắng về việc chuỗi mà tôi có, chuỗi tôi 75 00:04:12,360 --> 00:04:20,380 ở đây, đã thực sự thành chữ thường hoặc chữ hoa, hoặc các loại đáng lo ngại 76 00:04:20,380 --> 00:04:21,410 chi tiết mức thấp. 77 00:04:21,410 --> 00:04:26,180 Cũng trong Ruby, nếu bạn muốn thực hiện một bảng băm, điều này là chính xác làm thế nào bạn 78 00:04:26,180 --> 00:04:27,100 tạo ra một bảng băm. 79 00:04:27,100 --> 00:04:30,280 Bạn nói, từ điển, đó là tên biến của tôi, = "Hash.new". 80 00:04:30,280 --> 00:04:34,680 Và sau đó từ điển ["foo"], và khi tôi thêm foo vào bảng băm của tôi, tôi 81 00:04:34,680 --> 00:04:35,960 chỉ nói foo là có. 82 00:04:35,960 --> 00:04:38,070 >> Và sau đó nếu tôi muốn kiểm tra xem foo ở đó, tôi chỉ nói rằng nếu 83 00:04:38,070 --> 00:04:40,270 từ điển ["foo"] == trở lại đúng sự thật. 84 00:04:40,270 --> 00:04:41,560 Whoa, và đó là bảng băm của bạn. 85 00:04:41,560 --> 00:04:44,280 Đó là việc thực hiện của bảng băm trong Ruby. 86 00:04:44,280 --> 00:04:50,200 Vì vậy, tất cả mọi người muốn họ có thể có sử dụng một cái gì đó như Ruby cho cuối cùng 87 00:04:50,200 --> 00:04:51,450 pset tuần, phải không? 88 00:04:51,450 --> 00:04:54,410 89 00:04:54,410 --> 00:04:59,050 Chúng tôi có tất cả các loại lý do để muốn sử dụng một ngôn ngữ như Ruby. 90 00:04:59,050 --> 00:05:01,380 Ruby có đá quý. 91 00:05:01,380 --> 00:05:04,000 Đá quý là một tên cho một loại của thư viện trong Ruby. 92 00:05:04,000 --> 00:05:07,490 >> Vì vậy, tất cả các loại tính năng thú vị bạn có thể có, ví dụ, nếu tôi 93 00:05:07,490 --> 00:05:09,280 muốn tích hợp ứng dụng của tôi. 94 00:05:09,280 --> 00:05:12,470 Mà 2017 áp dụng Harvard đã được tích hợp vào Facebook. 95 00:05:12,470 --> 00:05:15,810 Vì vậy, bạn có thể đăng nhập, thông qua Facebook, đến các ứng dụng. 96 00:05:15,810 --> 00:05:19,760 Vì vậy, nếu bạn đang đi để làm điều đó, bạn không cần phải lo lắng về việc gửi một số 97 00:05:19,760 --> 00:05:23,760 Yêu cầu HTTP đến Facebook, và chờ đợi cho các phản ứng, và buộc 98 00:05:23,760 --> 00:05:25,150 Đáp lại, và blah, blah, blah. 99 00:05:25,150 --> 00:05:29,120 Bạn chỉ cần tải về đá quý mà làm tất cả điều đó cho bạn. 100 00:05:29,120 --> 00:05:30,750 Và sau đó bạn không cần phải lo lắng về tất cả điều đó. 101 00:05:30,750 --> 00:05:33,670 >> Và sau đó rất nhiều sự giúp đỡ trực tuyến, tất nhiên. 102 00:05:33,670 --> 00:05:37,040 Có rất nhiều, rất nhiều, rất nhiều trang web sẽ giúp bạn cả với 103 00:05:37,040 --> 00:05:38,880 Ruby và với Rails. 104 00:05:38,880 --> 00:05:40,530 Và nó là rất nhiều niềm vui để mã. 105 00:05:40,530 --> 00:05:46,770 Chính xác bởi vì bạn có thể ngừng lo lắng về những vấn đề không phải như vậy vui vẻ. 106 00:05:46,770 --> 00:05:50,690 Cũng giống như nếu một cái gì đó là chữ thường hoặc trường hợp trên, và sau đó tại sao điều này 107 00:05:50,690 --> 00:05:54,500 đem lại cho bạn một lỗi phân khúc, và bạn thực sự có thể lao vào rất 108 00:05:54,500 --> 00:05:55,460 thứ thú vị khác. 109 00:05:55,460 --> 00:05:59,650 Để đi sâu vào những vấn đề thực sự mát mẻ. 110 00:05:59,650 --> 00:06:02,420 >> Vì vậy, Ruby là giống như C trong một cảm giác. 111 00:06:02,420 --> 00:06:05,950 Vì vậy, nó sẽ không thể là lớn của một bước nhảy thực sự. 112 00:06:05,950 --> 00:06:09,470 Vì vậy, đặt, đó là ứng dụng in ấn của chúng tôi trong Ruby. 113 00:06:09,470 --> 00:06:12,790 Tôi nghĩ rằng bạn có thể sử dụng in quá, nhưng puts là những gì tất cả mọi người sử dụng. 114 00:06:12,790 --> 00:06:14,490 Vì vậy chỉ cần đặt "Hello World". 115 00:06:14,490 --> 00:06:21,400 Bạn có thể, hoặc bạn có thể không, có ngoặc bao quanh 116 00:06:21,400 --> 00:06:23,280 "Xin chào thế giới" ở đó. 117 00:06:23,280 --> 00:06:25,350 Bạn chỉ có thể chọn hoặc không sử dụng đó. 118 00:06:25,350 --> 00:06:26,780 Và sau đó x = "1". 119 00:06:26,780 --> 00:06:29,030 Một vòng lặp trong khi trông khá nhiều như vậy. 120 00:06:29,030 --> 00:06:30,630 Nó chỉ có ít cú pháp. 121 00:06:30,630 --> 00:06:32,590 Đó là loại sạch hơn một chút. 122 00:06:32,590 --> 00:06:37,380 Và sau đó nếu x> 25 puts "Big!" và khác đặt "nhỏ ...". 123 00:06:37,380 --> 00:06:39,070 Và đó là loại C trong ý nghĩa đó. 124 00:06:39,070 --> 00:06:41,630 >> Vì vậy, nếu bạn nhìn vào đó, bạn có thể phương pháp tiếp cận có thể hiểu 125 00:06:41,630 --> 00:06:42,890 tất cả những gì đang xảy ra. 126 00:06:42,890 --> 00:06:47,750 Nhưng nó mạnh hơn. 127 00:06:47,750 --> 00:06:54,520 Mạnh mẽ hơn bởi vì, hơn thế nữa, nó có thể làm những việc không phải là - 128 00:06:54,520 --> 00:06:55,750 một số loại hackage một chút. 129 00:06:55,750 --> 00:06:57,430 Trong C, bạn không thể làm trong chỉ cần làm với một dòng. 130 00:06:57,430 --> 00:06:58,680 Ví dụ, đặt "Tôi # {x}". 131 00:06:58,680 --> 00:07:04,330 132 00:07:04,330 --> 00:07:11,100 Đây chỉ là cú pháp cho đặt giá trị của x ở đây, và không in 133 00:07:11,100 --> 00:07:12,160 nhân vật x. 134 00:07:12,160 --> 00:07:17,850 Trong C, bạn phải làm phần trăm d, và sau đó đưa lên các biến x sau 135 00:07:17,850 --> 00:07:19,730 dấu phẩy ở đây, hoặc một cái gì đó như thế. 136 00:07:19,730 --> 00:07:22,220 >> Và Ruby có một cách viết tắt chỉ làm điều đó. 137 00:07:22,220 --> 00:07:27,830 Và đặt này, nếu x> 3, vì vậy bạn có thể đặt nếu trên cùng một dòng. 138 00:07:27,830 --> 00:07:29,010 Và sau đó một danh sách. 139 00:07:29,010 --> 00:07:33,320 Danh sách trong C, như một mảng, bạn phải theo dõi như thế nào lớn mảng của bạn là hay 140 00:07:33,320 --> 00:07:34,720 nếu không bạn có được một phân khúc lỗi. 141 00:07:34,720 --> 00:07:36,210 Mảng của bạn là chỉ có một loại. 142 00:07:36,210 --> 00:07:38,790 Vì vậy, nó là một mảng phí hoặc một mảng các số nguyên. 143 00:07:38,790 --> 00:07:43,620 Trong trường hợp này, tôi tạo ra một danh sách ở đây, đó là một mảng, có người đầu tiên 144 00:07:43,620 --> 00:07:48,450 yếu tố là một chuỗi, John, và sau đó bốn, hai - đó là số nguyên. 145 00:07:48,450 --> 00:07:53,590 Và sau đó tôi chỉ cần thêm, danh sách, Góc trái đỡ, còn lại 146 00:07:53,590 --> 00:07:54,820 Góc khung, ba. 147 00:07:54,820 --> 00:07:58,170 Điều đó có nghĩa chỉ cần nối thêm một cái gì đó vào danh sách của tôi. 148 00:07:58,170 --> 00:08:01,630 >> Vì vậy, nó là loại thú vị hơn vì nếu bạn muốn sử dụng như là 149 00:08:01,630 --> 00:08:03,920 chỉ là một danh sách đơn giản các số nguyên, bạn có thể, hoàn toàn. 150 00:08:03,920 --> 00:08:05,530 Đó là hoàn toàn tốt. 151 00:08:05,530 --> 00:08:06,750 Chỉ cần đặt số nguyên đó. 152 00:08:06,750 --> 00:08:10,240 Nhưng nếu bạn muốn làm một cái gì đó hấp dẫn hơn, có khác 153 00:08:10,240 --> 00:08:11,690 điều, có - 154 00:08:11,690 --> 00:08:15,480 Tôi không biết, tất cả các loại danh sách trong có, hoặc các đối tượng khác mà có nhiều 155 00:08:15,480 --> 00:08:16,970 thú vị, bạn hoàn toàn có thể làm điều đó. 156 00:08:16,970 --> 00:08:17,880 Nó hoàn toàn tốt. 157 00:08:17,880 --> 00:08:21,210 Và sau đó nếu bạn muốn để lặp qua danh sách, bạn có thể sử dụng 158 00:08:21,210 --> 00:08:24,850 hơn loại C-ish của cách tiếp cận. 159 00:08:24,850 --> 00:08:29,970 Đó là vòng lặp, bạn bắt đầu một biến, i = "1", hoặc i = "0". 160 00:08:29,970 --> 00:08:32,980 Và sau đó bạn đi, và lặp lại, và nhận được tất cả các yếu tố. 161 00:08:32,980 --> 00:08:37,559 >> Nhưng bạn cũng có thể sử dụng này hơn phương pháp tiếp cận Ruby-như thế nào. 162 00:08:37,559 --> 00:08:40,289 Đó là giống như một list.each. 163 00:08:40,289 --> 00:08:45,230 Đó chỉ là nói, trả lại cho tôi tất cả các yếu tố của danh sách. 164 00:08:45,230 --> 00:08:49,120 Và làm gì với mỗi phần tử, gọi họ elem. 165 00:08:49,120 --> 00:08:51,880 Vì vậy, đây chỉ là một cái tên mà tôi cho cho mỗi yếu tố. 166 00:08:51,880 --> 00:08:56,630 Và bây giờ điều này sẽ lặp lại cho tất cả các yếu tố, và elem, nó sẽ 167 00:08:56,630 --> 00:09:00,790 là cách mà chúng ta truy cập rằng yếu tố duy nhất. 168 00:09:00,790 --> 00:09:04,310 Vì vậy, bạn hoàn toàn có thể dính vào các Cách tiếp cận C, nhưng các công trình này quá. 169 00:09:04,310 --> 00:09:07,970 Và đó là chính xác cùng một điều, OK. 170 00:09:07,970 --> 00:09:13,830 >> Và khác hơn, nó thực sự là, thực sự dễ dàng để tích hợp Ruby và HTML 171 00:09:13,830 --> 00:09:17,010 kể từ khi các bạn quan tâm trong các ứng dụng web. 172 00:09:17,010 --> 00:09:20,070 HTML chắc chắn là một cái gì đó bạn sẽ sử dụng rất nhiều. 173 00:09:20,070 --> 00:09:25,820 Và đây nếu bạn muốn đặt của Ruby trong HTML, chỉ cần bắt đầu ở đây, <%. 174 00:09:25,820 --> 00:09:28,500 Điều đó có nghĩa, đây của Ruby bắt đầu. 175 00:09:28,500 --> 00:09:32,130 Và sau đó%>, giống như PHP trong ý nghĩa đó. 176 00:09:32,130 --> 00:09:35,520 Đây của Ruby kết thúc và sau đó bạn có thể chỉ cần đặt nếu bạn ở đây. 177 00:09:35,520 --> 00:09:39,400 Và sau đó tôi có một số biến user.logged_in. 178 00:09:39,400 --> 00:09:45,120 Trong Ruby, chúng ta thường thêm những, một trong hai dấu chấm than hoặc thẩm vấn 179 00:09:45,120 --> 00:09:48,210 nhãn hiệu, như một nhân vật ngân hàng, chỉ để loại 180 00:09:48,210 --> 00:09:49,480 phân biệt giữa các chức năng của chúng tôi. 181 00:09:49,480 --> 00:09:52,780 Nhưng bạn chỉ cần đặt mà vì lợi ích của riêng bạn. 182 00:09:52,780 --> 00:09:56,910 Nó không phải là một cái gì đó thay đổi bất cứ điều gì trong các chức năng. 183 00:09:56,910 --> 00:10:01,160 >> Vì vậy, chỉ để nhắc nhở tôi rằng đây là một chức năng - và các chức năng trong Ruby, 184 00:10:01,160 --> 00:10:06,650 chứ không phải là C, như tôi đã nói rồi, họ không cần các dấu ngoặc đơn. 185 00:10:06,650 --> 00:10:09,740 Để đăng nhập vào điều, đó là một chức năng, đó là một phương pháp. 186 00:10:09,740 --> 00:10:12,990 Nhưng bạn không cần phải rõ ràng để đặt dấu ngoặc đơn trong đó. 187 00:10:12,990 --> 00:10:16,030 Vì vậy, chỉ yêu cầu nếu người dùng của đăng nhập, và nếu người dùng của đăng nhập, bây giờ 188 00:10:16,030 --> 00:10:17,100 HTML bắt đầu một lần nữa. 189 00:10:17,100 --> 00:10:21,670 Vì vậy, Chào mừng bạn, và đây Tôi in user.name. 190 00:10:21,670 --> 00:10:22,920 Và đó là nó. 191 00:10:22,920 --> 00:10:24,970 192 00:10:24,970 --> 00:10:30,420 Vì vậy, đó là khá thẳng về phía trước, làm thế nào bạn tích hợp Ruby với HTML của bạn. 193 00:10:30,420 --> 00:10:34,560 Và các nguồn tài nguyên, như tôi đã nói, có tất cả các loại tài nguyên cho Ruby. 194 00:10:34,560 --> 00:10:39,560 Tất cả các bạn có thể xem xét điều này lên sau đó bởi vì cả hai đoạn video, và 195 00:10:39,560 --> 00:10:40,875 các trang trình bày, sẽ có sẵn trực tuyến. 196 00:10:40,875 --> 00:10:44,620 197 00:10:44,620 --> 00:10:47,180 >> Và bây giờ chúng ta hãy vào Rails. 198 00:10:47,180 --> 00:10:48,330 Rails là tình yêu. 199 00:10:48,330 --> 00:10:49,230 Ray - 200 00:10:49,230 --> 00:10:51,030 để Ruby là ngôn ngữ của mình. 201 00:10:51,030 --> 00:10:54,340 OK, giống như PHP, giống như Python. 202 00:10:54,340 --> 00:10:59,980 Đó là một ngôn ngữ cấp cao, không giống như C. C của một trung, ngôn ngữ cấp thấp trong 203 00:10:59,980 --> 00:11:05,240 nghĩa là Ruby bạn không cần phải lo lắng về bộ nhớ phân bổ lại, và 204 00:11:05,240 --> 00:11:07,300 con trỏ, và những loại đồ vật. 205 00:11:07,300 --> 00:11:11,120 Nhưng Rails là chương trình này được viết bằng Ruby. 206 00:11:11,120 --> 00:11:15,610 Và nó sử dụng Ruby, để có điều này khuôn khổ, để bạn có thể có thể 207 00:11:15,610 --> 00:11:18,990 xây dựng các ứng dụng web tuyệt vời. 208 00:11:18,990 --> 00:11:21,940 >> Vì vậy, trước tiên bạn phải cài đặt Ruby on máy tính của bạn, nhưng hầu hết các máy 209 00:11:21,940 --> 00:11:22,630 đã có điều đó. 210 00:11:22,630 --> 00:11:24,800 Và sau đó cài đặt đường ray trên đầu trang của nó. 211 00:11:24,800 --> 00:11:26,540 Chúng ta sẽ nói về nó sau. 212 00:11:26,540 --> 00:11:28,100 Và tại sao Rails? 213 00:11:28,100 --> 00:11:31,470 Vì vậy, MVC, đó là mô hình điều khiển xem chúng ta đã nói về một chút 214 00:11:31,470 --> 00:11:36,050 bit, làm cho mọi thứ đơn giản hơn vì nó chia những điều 215 00:11:36,050 --> 00:11:42,420 khái niệm khác nhau vào khác nhau các bộ phận của ứng dụng của bạn. 216 00:11:42,420 --> 00:11:45,930 Ít thời gian dành cho các vấn đề ở mức độ thấp, một lần nữa, và rất, rất 217 00:11:45,930 --> 00:11:46,820 phổ biến ngay bây giờ. 218 00:11:46,820 --> 00:11:52,130 Vì vậy, cho tất cả những người quan tâm đến cảnh bắt đầu lên, hoặc trong một cái gì đó 219 00:11:52,130 --> 00:11:58,435 như bắt đầu từ các doanh nghiệp, và người dân trong thị trường công nghệ là ai 220 00:11:58,435 --> 00:12:02,440 bắt đầu kinh doanh riêng của mình ngay bây giờ thực sự, thực sự hâm mộ của Ruby on 221 00:12:02,440 --> 00:12:04,120 Ray vì nó quá nhanh. 222 00:12:04,120 --> 00:12:07,510 >> Vì vậy, bạn có thể nhận được một cái gì đó và chạy trong vòng chưa đầy một ngày, và đó là 223 00:12:07,510 --> 00:12:10,410 thực sự rất hấp dẫn tham số để sử dụng Ruby. 224 00:12:10,410 --> 00:12:13,460 Và Rails 4.0 - 225 00:12:13,460 --> 00:12:15,920 nó rất tươi từ lò nướng bây giờ. 226 00:12:15,920 --> 00:12:16,930 Vì vậy, Rails 4.0 - 227 00:12:16,930 --> 00:12:20,180 Tôi nghĩ rằng việc phát hành đầu tiên là vào tháng Ba năm nay. 228 00:12:20,180 --> 00:12:23,460 Và nó thực sự tốt đẹp, nó có tất cả các loại, tính năng mới mát mẻ. 229 00:12:23,460 --> 00:12:30,290 Vì vậy, Ruby on Rails là một khuôn khổ đó là liên tục được cập nhật để có tất cả 230 00:12:30,290 --> 00:12:31,540 của công nghệ mới. 231 00:12:31,540 --> 00:12:33,710 232 00:12:33,710 --> 00:12:39,800 >> Lần đầu tiên tôi cố gắng sử dụng Ruby on Đường ray, tôi gặp khó khăn này bởi vì tôi 233 00:12:39,800 --> 00:12:44,540 tạo ra ứng dụng web đầu tiên của tôi, và nó trông giống hệt như thế. 234 00:12:44,540 --> 00:12:49,020 Vì vậy, nó tạo ra tất cả các tập tin cho bạn, và tôi không có ý tưởng gì - 235 00:12:49,020 --> 00:12:50,780 cái gì đây? 236 00:12:50,780 --> 00:12:54,850 Nó tạo ra tất cả các tập tin, và tôi chỉ muốn tạo ra một chương trình đơn giản, một 237 00:12:54,850 --> 00:12:57,140 trang web HTML đơn giản. 238 00:12:57,140 --> 00:12:59,680 Và tôi thậm chí không thể làm bất cứ điều gì. 239 00:12:59,680 --> 00:13:02,430 Vì vậy, tôi là một chút choáng ngợp. 240 00:13:02,430 --> 00:13:08,350 Nhưng đó là một trong những điều mà một khi bạn được biết, tất cả mọi thứ trở nên 241 00:13:08,350 --> 00:13:09,190 rõ ràng hơn nhiều. 242 00:13:09,190 --> 00:13:15,750 Vì vậy, không bị tràn ngập bởi những người đầu tiên nhìn thấy những gì bạn tạo ra lần đầu tiên. 243 00:13:15,750 --> 00:13:18,430 >> Vì vậy, những gì xảy ra là Rails tạo tất cả các tập tin. 244 00:13:18,430 --> 00:13:20,470 Vì vậy, một trong đó là doc, tài liệu hướng dẫn. 245 00:13:20,470 --> 00:13:23,080 Db, đó là liên quan đến cơ sở dữ liệu. 246 00:13:23,080 --> 00:13:25,060 Lib, đó là thư viện đăng nhập. 247 00:13:25,060 --> 00:13:28,200 Công cộng, kịch bản, và một số điều. 248 00:13:28,200 --> 00:13:32,110 Khá nhiều tất cả các bạn sẽ lo lắng về là thư mục ứng dụng, trên đó. 249 00:13:32,110 --> 00:13:34,430 Đó là thư mục chứa ứng dụng của bạn. 250 00:13:34,430 --> 00:13:35,540 Tất cả các file khác - 251 00:13:35,540 --> 00:13:37,770 một số trong số đó là quan trọng, và bạn sẽ tìm hiểu về điều này sau. 252 00:13:37,770 --> 00:13:42,040 Nhưng họ chỉ ở đây để có khuôn khổ. 253 00:13:42,040 --> 00:13:46,420 Vì vậy, những nền tảng đầu tiên của ngôi nhà các bạn đang xây dựng, OK? 254 00:13:46,420 --> 00:13:47,730 >> Nhưng thư mục ứng dụng - 255 00:13:47,730 --> 00:13:49,630 đó là một thực sự quan trọng. 256 00:13:49,630 --> 00:13:53,050 Và thư mục ứng dụng có tài sản. 257 00:13:53,050 --> 00:13:57,690 Tài sản là khá nhiều tất cả mọi thứ đó là tới. 258 00:13:57,690 --> 00:14:01,890 Hình ảnh ví dụ, tất cả mọi thứ đó là tĩnh mà sẽ được tải về 259 00:14:01,890 --> 00:14:03,450 để trang web của bạn. 260 00:14:03,450 --> 00:14:06,850 Vì vậy, hình ảnh, JavaScript, CSS - 261 00:14:06,850 --> 00:14:08,520 những loại của sự vật là tài sản. 262 00:14:08,520 --> 00:14:11,310 263 00:14:11,310 --> 00:14:12,260 Bộ điều khiển - 264 00:14:12,260 --> 00:14:15,190 chúng ta sẽ nói thêm về bộ điều khiển, mô hình là gì, 265 00:14:15,190 --> 00:14:16,800 và các lĩnh vực trong một giây. 266 00:14:16,800 --> 00:14:20,760 Và người trợ giúp là chức năng mà bạn có thể sử dụng trên tất cả mã của bạn 267 00:14:20,760 --> 00:14:22,800 để giúp bạn làm điều gì đó. 268 00:14:22,800 --> 00:14:25,800 Các chức năng như đăng nhập, cho Ví dụ - user.loggedin. 269 00:14:25,800 --> 00:14:29,500 Đó là một chức năng mà có thể là bạn phải sử dụng trong tất cả các bộ phận của bạn 270 00:14:29,500 --> 00:14:30,030 ứng dụng. 271 00:14:30,030 --> 00:14:33,590 Vì vậy, bạn có thể đặt một cái gì đó như mà trong trợ giúp của bạn. 272 00:14:33,590 --> 00:14:34,370 >> Bưu phẩm - 273 00:14:34,370 --> 00:14:41,480 đó là nếu bạn đang đi để gửi email đến người dùng của bạn, bạn 274 00:14:41,480 --> 00:14:43,420 muốn sử dụng một bưu phẩm. 275 00:14:43,420 --> 00:14:46,420 Và các mô hình và quan điểm, chúng ta sẽ để nói về ngay bây giờ. 276 00:14:46,420 --> 00:14:52,450 Vì vậy, các bộ điều khiển mô hình xem, đó là là nền tảng cơ bản của Ruby on 277 00:14:52,450 --> 00:14:55,730 Đường ray, và hầu hết các khuôn khổ ngày nay, phải trung thực. 278 00:14:55,730 --> 00:15:01,180 Vì vậy, một lần nữa, chúng tôi tách tất cả các mã của chúng tôi thành ba phần khác nhau. 279 00:15:01,180 --> 00:15:02,590 Mô hình - 280 00:15:02,590 --> 00:15:04,620 mô hình về cơ bản là cơ sở dữ liệu. 281 00:15:04,620 --> 00:15:06,090 Nó xử lý mọi thứ trong cơ sở dữ liệu. 282 00:15:06,090 --> 00:15:10,790 >> Vì vậy, mỗi bảng trong cơ sở dữ liệu có tập tin tương ứng trong mô hình. 283 00:15:10,790 --> 00:15:13,330 Vì vậy, nó là loại một bảng cho người dùng của bạn. 284 00:15:13,330 --> 00:15:18,250 Vì vậy, bạn đang lưu trữ thông tin như tên người dùng, email của họ, họ 285 00:15:18,250 --> 00:15:20,970 địa chỉ, mật khẩu của họ, và những thứ như thế. 286 00:15:20,970 --> 00:15:24,535 Bạn sẽ có một tập tin trong mô hình được gọi là người sử dụng rb - 287 00:15:24,535 --> 00:15:26,240 RB cho Ruby. 288 00:15:26,240 --> 00:15:30,180 Và có bạn sẽ có tất cả các phương pháp và các biến. 289 00:15:30,180 --> 00:15:34,130 Các biến sẽ tương ứng tên người dùng, email, và 290 00:15:34,130 --> 00:15:35,370 tất cả mọi thứ. 291 00:15:35,370 --> 00:15:37,760 >> Và bạn sẽ có những phương pháp. 292 00:15:37,760 --> 00:15:42,690 Đó sẽ là một cái gì đó liên quan đến - 293 00:15:42,690 --> 00:15:46,400 bạn sẽ xử lý thông tin này trong cơ sở dữ liệu. 294 00:15:46,400 --> 00:15:50,220 Để tạo ra một mô hình với Rails, bạn chỉ cần sử dụng Rails tạo ra. 295 00:15:50,220 --> 00:15:54,990 Và để tạo ra những điều trong bản đồ, bạn thực sự cần thiết bị đầu cuối. 296 00:15:54,990 --> 00:15:58,770 Vì vậy, nó là một thiết bị đầu cuối rất khuôn khổ dựa. 297 00:15:58,770 --> 00:16:02,530 Bạn chỉ cần đăng nhập vào thiết bị đầu cuối, và làm bản đồ, tạo ra mô hình. 298 00:16:02,530 --> 00:16:04,670 Và tên của mô hình này là người sử dụng. 299 00:16:04,670 --> 00:16:10,270 Và tôi chỉ muốn có hai biến, hai cột, trong bảng của tôi. 300 00:16:10,270 --> 00:16:11,450 Vì vậy, đó là email. 301 00:16:11,450 --> 00:16:13,080 Email là một chuỗi loại. 302 00:16:13,080 --> 00:16:15,450 Mật khẩu, mật khẩu là cũng là một chuỗi loại. 303 00:16:15,450 --> 00:16:16,520 Những người là hai thứ duy nhất. 304 00:16:16,520 --> 00:16:19,160 Đó là loại một bảng người sử dụng đơn giản. 305 00:16:19,160 --> 00:16:22,490 Nhưng bạn hoàn toàn có thể đặt một trăm điều là có nếu bạn muốn. 306 00:16:22,490 --> 00:16:27,620 >> Và Rails cũng làm cho nó rất, rất đơn giản để có tất cả 307 00:16:27,620 --> 00:16:30,040 các loại quan hệ cơ sở dữ liệu. 308 00:16:30,040 --> 00:16:36,100 Vì vậy, thông thường, khi bạn có bảng trong của bạn cơ sở dữ liệu, họ không phải là rất nhiều 309 00:16:36,100 --> 00:16:37,570 độc lập với nhau. 310 00:16:37,570 --> 00:16:39,392 Hãy suy nghĩ về. 311 00:16:39,392 --> 00:16:42,960 Bạn muốn mua và bán sản phẩm trực tuyến. 312 00:16:42,960 --> 00:16:46,620 OK, vì vậy bạn có một trang web mà bạn muốn mua và bán sản phẩm. 313 00:16:46,620 --> 00:16:55,060 Vì vậy, mỗi người dùng có nhiều sản phẩm người sử dụng này là sẵn sàng để bán. 314 00:16:55,060 --> 00:17:00,970 Và mỗi người sử dụng cũng có nhiều giao dịch mà đang được tiến hành, hoặc 315 00:17:00,970 --> 00:17:01,920 một cái gì đó như thế. 316 00:17:01,920 --> 00:17:05,430 Và các giao dịch được với người dùng khác. 317 00:17:05,430 --> 00:17:08,310 Mỗi giao dịch thuộc để hai người dùng khác nhau. 318 00:17:08,310 --> 00:17:10,560 Người sử dụng đó là mua người sử dụng đó là bán. 319 00:17:10,560 --> 00:17:13,920 >> Vì vậy, đó là những cái gọi là quan hệ cơ sở dữ liệu. 320 00:17:13,920 --> 00:17:17,890 Và ở đây chúng tôi có chính xác những từ khóa, có nhiều và thuộc về. 321 00:17:17,890 --> 00:17:19,500 Đó là những người quan trọng nhất. 322 00:17:19,500 --> 00:17:22,410 Và bạn chỉ cần đi để nói, cho Ví dụ, đây là ví dụ về một 323 00:17:22,410 --> 00:17:25,740 mô hình trong 2017 trang web Harvard. 324 00:17:25,740 --> 00:17:28,820 Một lần nữa, các sinh viên ở đây - 325 00:17:28,820 --> 00:17:32,870 mỗi học sinh trên trang web, sinh viên là một mô hình, là một bảng cơ sở dữ liệu. 326 00:17:32,870 --> 00:17:37,560 Mỗi học sinh có nhiều sách bởi vì bạn có thể nói, yêu thích của bạn là gì 327 00:17:37,560 --> 00:17:38,630 sách, phải. 328 00:17:38,630 --> 00:17:44,450 Vì vậy, mỗi cuốn sách thuộc về một sinh viên ở đây. 329 00:17:44,450 --> 00:17:46,910 Và thuộc tính có thể truy cập - 330 00:17:46,910 --> 00:17:49,580 đó chỉ là nói, những là các biến. 331 00:17:49,580 --> 00:17:53,050 Đó là những biến thể truy cập từ mô hình này. 332 00:17:53,050 --> 00:17:58,570 Và các biến là tác giả của cuốn sách, mô tả, thể loại, và 333 00:17:58,570 --> 00:17:59,870 tiêu đề của cuốn sách. 334 00:17:59,870 --> 00:18:02,700 Vì vậy chỉ cần các thông tin liên quan đến cuốn sách. 335 00:18:02,700 --> 00:18:06,410 >> Và ở đây tôi có một phương pháp mà chỉ đơn giản là sắp xếp tất cả mọi thứ. 336 00:18:06,410 --> 00:18:10,710 Vì vậy, xác định và kết thúc ở đây, đó chỉ là nói, ở đây có phương pháp của tôi. 337 00:18:10,710 --> 00:18:13,220 Self.sorted_all. 338 00:18:13,220 --> 00:18:16,390 Đó chỉ là, tất cả mọi thứ được sắp xếp cho tôi, và đó là cách bạn thực hiện 339 00:18:16,390 --> 00:18:22,360 các thuật toán phân loại, đó là khá dễ dàng. 340 00:18:22,360 --> 00:18:27,430 Nhưng về cơ bản, đây là cách một mô hình như thế nào, OK. 341 00:18:27,430 --> 00:18:32,990 Có ai có câu hỏi liên quan cơ sở dữ liệu điều này? 342 00:18:32,990 --> 00:18:33,736 Các mối quan hệ? 343 00:18:33,736 --> 00:18:36,430 Là rõ ràng? 344 00:18:36,430 --> 00:18:37,125 Vâng. 345 00:18:37,125 --> 00:18:38,490 >> ĐỐI TƯỢNG: Bạn có thể làm các thuật toán sắp xếp? 346 00:18:38,490 --> 00:18:41,960 >> GABRIEL Guimaraes: Các thuật toán sắp xếp, OK. 347 00:18:41,960 --> 00:18:45,340 Khi bạn đã quen với Ruby cú pháp, nó sẽ được rõ ràng. 348 00:18:45,340 --> 00:18:48,800 Nhưng về cơ bản, elems là Book.all. 349 00:18:48,800 --> 00:18:50,820 Vì vậy, cuốn sách là tên của mô hình của tôi. 350 00:18:50,820 --> 00:18:55,670 Khi bạn tạo ra một mô hình, nó đi kèm với tất cả các loại phương pháp tốt đẹp cho bạn. 351 00:18:55,670 --> 00:18:58,810 Vì vậy, dot.all là một phương pháp trả về tất cả các sách. 352 00:18:58,810 --> 00:19:02,560 Nhưng tìm, ví dụ, sẽ tìm kiếm một cuốn sách và trả lại cuốn sách đó, hoặc 353 00:19:02,560 --> 00:19:03,840 một cái gì đó như thế. 354 00:19:03,840 --> 00:19:05,990 Và do đó elems là tất cả mọi thứ. 355 00:19:05,990 --> 00:19:08,870 Và tôi chỉ nói elems.sort. 356 00:19:08,870 --> 00:19:11,300 Sắp xếp là một chức năng được xây dựng trong Ruby. 357 00:19:11,300 --> 00:19:13,526 >> Và, làm ab. 358 00:19:13,526 --> 00:19:15,940 Vì vậy, đây không lại là - 359 00:19:15,940 --> 00:19:17,400 bạn sẽ sắp xếp. 360 00:19:17,400 --> 00:19:19,850 Nhưng bạn sẽ nhận được lập luận này cho tôi. 361 00:19:19,850 --> 00:19:25,160 Và lập luận sử dụng - đây là một trong những điều khó khăn hơn trong Ruby thực sự, 362 00:19:25,160 --> 00:19:26,920 này làm việc. 363 00:19:26,920 --> 00:19:31,470 Nhưng một khi bạn hiểu nó tất cả mọi thứ đến rất, rất trực quan. 364 00:19:31,470 --> 00:19:37,140 Vì vậy, ab, điều này được nói nơi người mà tôi sẽ sử dụng - như 365 00:19:37,140 --> 00:19:41,760 các biến tôi sẽ sử dụng, là sẽ được gọi là a và b. 366 00:19:41,760 --> 00:19:43,380 Và đó là những cuốn sách. 367 00:19:43,380 --> 00:19:47,120 >> Như vậy bởi vì loại cần so sánh yếu tố, hãy nhớ rằng? 368 00:19:47,120 --> 00:19:49,760 Vì vậy, khi bạn sắp xếp mọi thứ, bạn so sánh hai yếu tố. 369 00:19:49,760 --> 00:19:51,900 Tôi sẽ nói rằng mỗi thời gian bạn sẽ so sánh - 370 00:19:51,900 --> 00:19:54,350 vì vậy đây là, tôi đang đi qua để sắp xếp một cuộc tranh cãi. 371 00:19:54,350 --> 00:19:59,370 Và các đối số là tất cả mọi thứ từ làm cho và ở đây, OK? 372 00:19:59,370 --> 00:20:02,980 Và lập luận này, chỉ là nói loại làm thế nào để so sánh. 373 00:20:02,980 --> 00:20:07,460 Loại sẽ làm việc ở đây, nhưng nó sẽ so sánh với họ 374 00:20:07,460 --> 00:20:09,530 mặc định so sánh thuật toán. 375 00:20:09,530 --> 00:20:13,810 Tôi muốn nó để so sánh một cách rất cụ thể cách, cụ thể là, khi cuốn sách 376 00:20:13,810 --> 00:20:16,900 đã được tạo ra, khi mỗi Cuốn sách đã được tạo ra. 377 00:20:16,900 --> 00:20:21,090 >> Vì vậy, tôi nói, nói tên những người đầu tiên cuốn sách là một và tên của 378 00:20:21,090 --> 00:20:27,620 Cuốn sách thứ hai như b, Tôi muốn sắp xếp để sắp xếp một cái gì đó dựa trên b.created_at này 379 00:20:27,620 --> 00:20:30,000 biểu tượng lạ, a.created_at. 380 00:20:30,000 --> 00:20:34,350 Và biểu tượng kỳ lạ là viết tắt vì nếu lớn hơn 381 00:20:34,350 --> 00:20:35,380 khác, trả lại 1. 382 00:20:35,380 --> 00:20:37,450 Nếu có bằng khác, trở lại bằng không. 383 00:20:37,450 --> 00:20:41,180 Nếu có nhỏ hơn khác, trả lại trừ đi 1. 384 00:20:41,180 --> 00:20:43,435 Vì vậy, đó là những gì mà biểu tượng lạ là. 385 00:20:43,435 --> 00:20:46,680 386 00:20:46,680 --> 00:20:47,500 >> Nhưng điều đó không quan trọng. 387 00:20:47,500 --> 00:20:52,780 Ý tôi là, những gì tôi muốn các bạn để có được bây giờ là ý tưởng cơ sở dữ liệu - 388 00:20:52,780 --> 00:20:54,150 bạn có thể có mô hình đó. 389 00:20:54,150 --> 00:20:59,850 Vì vậy, bạn không phải lo lắng về kết nối và sử dụng câu lệnh SQL, 390 00:20:59,850 --> 00:21:00,500 và những thứ như thế. 391 00:21:00,500 --> 00:21:04,920 Nó cũng có thể tạo ra cánh cửa để SQL injection và tất cả 392 00:21:04,920 --> 00:21:06,460 các loại của các vấn đề an ninh. 393 00:21:06,460 --> 00:21:07,930 Trong trường hợp này, bạn không lo lắng về điều đó. 394 00:21:07,930 --> 00:21:11,880 Bạn chỉ cần sử dụng các phương pháp như book.all. 395 00:21:11,880 --> 00:21:15,210 Và rằng, trong bối cảnh tất nhiên, sẽ cơ sở dữ liệu của bạn, và nó 396 00:21:15,210 --> 00:21:17,570 sẽ sử dụng một câu lệnh SQL để có được tất cả những cuốn sách. 397 00:21:17,570 --> 00:21:19,650 Nhưng bạn không cần phải lo lắng về điều đó. 398 00:21:19,650 --> 00:21:24,090 Đó là takeaway, OK? 399 00:21:24,090 --> 00:21:26,790 >> Và khi bạn có một tuyên bố belongs_to như thế này, điều đó có nghĩa rằng 400 00:21:26,790 --> 00:21:31,780 một khi bạn có một đối tượng cuốn sách, bạn có thể thấy sinh viên của nó là gì. 401 00:21:31,780 --> 00:21:34,130 Vì vậy, mà học sinh có cuốn sách này? 402 00:21:34,130 --> 00:21:38,760 Vì vậy, chúng tôi chỉ có thể sử dụng book.student, và cung cấp cho bạn những gì các học sinh. 403 00:21:38,760 --> 00:21:42,440 Và đó là một thực sự tính năng để có. 404 00:21:42,440 --> 00:21:43,950 >> OK, bây giờ xem. 405 00:21:43,950 --> 00:21:48,380 Vì vậy, các mô hình là những gì tương tác với cơ sở dữ liệu, phải không? 406 00:21:48,380 --> 00:21:52,240 Quan điểm về cơ bản là HTML, và CSS, và một số JavaScript. 407 00:21:52,240 --> 00:21:55,080 Và đó là những gì người sử dụng thực sự thấy. 408 00:21:55,080 --> 00:21:56,540 Người sử dụng sẽ không thấy cơ sở dữ liệu của bạn. 409 00:21:56,540 --> 00:22:00,290 Anh ta sẽ thấy một số dữ liệu từ cơ sở dữ liệu nhúng trong trình xem. 410 00:22:00,290 --> 00:22:04,940 411 00:22:04,940 --> 00:22:08,410 Ruby on Rails làm cho nó thực sự đơn giản để thực hiện các lĩnh vực. 412 00:22:08,410 --> 00:22:12,780 Đầu tiên, bởi vì nó đã tạo ra nó cho bạn, ra khỏi hộp, bố trí một. 413 00:22:12,780 --> 00:22:16,200 >> Một cách bố trí về cơ bản là một cái gì đó - 414 00:22:16,200 --> 00:22:24,230 nếu tất cả các trang của bạn có một biểu tượng trên và, tôi không biết, một số đơn hoặc 415 00:22:24,230 --> 00:22:29,000 như thế, mà tất cả các trang của bạn phần chung, sau đó bạn không 416 00:22:29,000 --> 00:22:34,830 cần phải tạo ra nhiều, rất nhiều, rất nhiều HTML các tập tin, nơi tất cả các tập tin có mà 417 00:22:34,830 --> 00:22:36,830 cùng một mã HTML. 418 00:22:36,830 --> 00:22:40,700 Tôi có nghĩa là đó là câm vì bạn chỉ lặp đi lặp lại đang trong tập tin khác nhau. 419 00:22:40,700 --> 00:22:42,480 Đó chắc chắn không phải là một cách tiếp cận tốt. 420 00:22:42,480 --> 00:22:45,660 >> Vì vậy, Ruby on Rails tạo bố trí này cho bạn. 421 00:22:45,660 --> 00:22:49,770 Và điều này chỉ nói rằng, tất cả các trang của tôi sẽ có HTML này, người đứng đầu này 422 00:22:49,770 --> 00:22:54,805 tiêu đề ở đây, và những người đang phong cách thẻ liên kết tấm. 423 00:22:54,805 --> 00:22:56,800 Cắm vào đây tất cả CSS của tôi. 424 00:22:56,800 --> 00:23:01,194 Cắm ở đây tất cả các JavaScript của tôi và một số thẻ meta. 425 00:23:01,194 --> 00:23:04,440 Đó chỉ là một cái gì đó mà họ làm tự động cho bạn. 426 00:23:04,440 --> 00:23:07,490 Và sau đó, kết thúc đầu, bây giờ ở đây bắt đầu trong cơ thể. 427 00:23:07,490 --> 00:23:09,780 Và giờ đây là nội dung thực tế của tôi. 428 00:23:09,780 --> 00:23:16,620 Vì vậy, nếu tôi muốn đặt một cái gì đó như thế, một đơn ở đây, tôi sẽ đặt nó đúng hơn 429 00:23:16,620 --> 00:23:19,600 nơi này, hoặc một cái gì đó như thế, để tất cả các trang của tôi chia sẻ nó. 430 00:23:19,600 --> 00:23:21,730 Vì vậy, cách bố trí được chia sẻ bởi tất cả các trang. 431 00:23:21,730 --> 00:23:26,500 >> Bây giờ mà năng suất ở đây chỉ nói, không có vấn đề gì các trang này là, chỉ cần 432 00:23:26,500 --> 00:23:30,560 cắm trong nội dung đó trang ở đây, OK? 433 00:23:30,560 --> 00:23:33,770 Và giờ đây là, ví dụ, nội dung của một trang đó sẽ là 434 00:23:33,770 --> 00:23:38,950 cắm vào tuyên bố sản lượng này tự động bởi Rails. 435 00:23:38,950 --> 00:23:40,700 Nhưng đây là một bố trí chia sẻ bởi tất cả các trang. 436 00:23:40,700 --> 00:23:42,500 Và đây là một ví dụ về một trang. 437 00:23:42,500 --> 00:23:46,410 Và điều này là chính xác trang liệt kê tất cả những cuốn sách. 438 00:23:46,410 --> 00:23:49,390 Vì vậy, đây là một bảng HTML cơ bản lên hàng đầu. 439 00:23:49,390 --> 00:23:53,730 Vì vậy, danh sách sách, tiêu đề, tác giả, mô tả, thể loại. 440 00:23:53,730 --> 00:24:00,810 >> Và ở đây chúng tôi sử dụng, một lần nữa, một số Ruby cú pháp, @ books.each-- 441 00:24:00,810 --> 00:24:07,720 @ Loại nói rằng biến của bạn là toàn cầu trong một cảm giác. 442 00:24:07,720 --> 00:24:10,940 Vì biến này đã thực sự tuyên bố trong bộ điều khiển mà 443 00:24:10,940 --> 00:24:12,840 bạn sẽ thấy ngay bây giờ. 444 00:24:12,840 --> 00:24:18,570 Nhưng chỉ đưa cho các cấp rằng điều này @ Sách là một biến đó là một danh sách các 445 00:24:18,570 --> 00:24:20,000 tất cả các sách. 446 00:24:20,000 --> 00:24:24,580 Vì vậy, books.each, làm gì, và một lần nữa, đây là chỉ nói làm thế nào để bạn muốn đặt tên 447 00:24:24,580 --> 00:24:29,580 mỗi vòng lặp để chúng tôi làm không phải lo lắng về một bốn, int i 448 00:24:29,580 --> 00:24:30,630 blah, blah, blah. 449 00:24:30,630 --> 00:24:33,760 Chúng tôi chỉ có mỗi các yếu tố và sử dụng chúng. 450 00:24:33,760 --> 00:24:38,890 >> Vì vậy, đây là cuốn sách, và sau đó chỉ cần in đây. book.title, book.author, 451 00:24:38,890 --> 00:24:41,020 book.description, và blah, blah, blah. 452 00:24:41,020 --> 00:24:42,940 Và đây là một link_to. 453 00:24:42,940 --> 00:24:46,840 Vì vậy, link_to chỉ là một thẻ liên kết người dùng có thể bấm vào và 454 00:24:46,840 --> 00:24:49,040 đi đến một trang web khác. 455 00:24:49,040 --> 00:24:51,160 Link_to, cho thấy rằng cuốn sách cụ thể. 456 00:24:51,160 --> 00:24:56,480 Vì vậy, nếu người sử dụng là rất quan tâm đến cuốn sách này, sau đó ông có thể nhấp chuột vào chương trình. 457 00:24:56,480 --> 00:24:59,350 Hoặc bấm vào chỉnh sửa, nếu anh ta muốn chỉnh sửa cuốn sách. 458 00:24:59,350 --> 00:25:03,560 Hoặc phá hủy, nếu ông muốn xóa cuốn sách từ cơ sở dữ liệu. 459 00:25:03,560 --> 00:25:06,260 OK, không có ý nghĩa? 460 00:25:06,260 --> 00:25:08,610 Tốt. 461 00:25:08,610 --> 00:25:10,600 >> Cuối cùng, bộ điều khiển. 462 00:25:10,600 --> 00:25:17,150 Vì vậy, về cơ bản điều khiển là giao diện giữa 463 00:25:17,150 --> 00:25:20,040 mô hình và xem. 464 00:25:20,040 --> 00:25:25,120 Vì vậy, mô hình này là một phần của bạn mã có cơ sở dữ liệu - 465 00:25:25,120 --> 00:25:27,620 mỗi bảng trong cơ sở dữ liệu có một tập tin tương ứng trong 466 00:25:27,620 --> 00:25:30,120 mô hình, và như vậy. 467 00:25:30,120 --> 00:25:34,890 Và làm thế nào để mô hình và quan điểm tương tác? 468 00:25:34,890 --> 00:25:36,990 Vì vậy, thông qua bộ điều khiển. 469 00:25:36,990 --> 00:25:43,620 Những gì một bộ điều khiển không có gì nó là mô hình cho một cái gì đó như, ví dụ, 470 00:25:43,620 --> 00:25:46,510 đặt tất cả các cuốn sách bên trong của một biến. 471 00:25:46,510 --> 00:25:47,760 Như thế này, @ sách. 472 00:25:47,760 --> 00:25:50,200 473 00:25:50,200 --> 00:25:54,800 >> Và nó cần phải được toàn cầu với điều này tại điều bởi vì nó sẽ là 474 00:25:54,800 --> 00:25:56,180 truy cập xem. 475 00:25:56,180 --> 00:26:00,000 Nó sẽ không được sử dụng trong bộ điều khiển chính nó. 476 00:26:00,000 --> 00:26:03,160 Và nó chỉ làm chậm thông tin xem là sẽ sử dụng. 477 00:26:03,160 --> 00:26:08,030 Ví dụ, kiểm tra điều khiển nếu người sử dụng trực tuyến. 478 00:26:08,030 --> 00:26:09,620 Và làm thế nào để nó làm điều đó? 479 00:26:09,620 --> 00:26:11,760 Nó thực sự yêu cầu mô hình bởi vì mô hình có 480 00:26:11,760 --> 00:26:12,890 thông tin về người dùng. 481 00:26:12,890 --> 00:26:15,840 Nó có một bảng người sử dụng, những cuốn sách bảng, các bảng khác. 482 00:26:15,840 --> 00:26:18,560 Vì vậy, các bộ điều khiển hỏi người sử dụng trực tuyến. 483 00:26:18,560 --> 00:26:23,760 Nếu người dùng trực tuyến, bộ điều khiển xử lý những việc như đặt một cookie, 484 00:26:23,760 --> 00:26:28,120 hay như thế, để đặt dấu để nói rằng người sử dụng trực tuyến. 485 00:26:28,120 --> 00:26:29,930 Không cần phải đăng nhập lại. 486 00:26:29,930 --> 00:26:34,080 >> Và nó sẽ tải một biến gọi là người sử dụng, ví dụ, rằng 487 00:26:34,080 --> 00:26:35,130 xem có thể sử dụng. 488 00:26:35,130 --> 00:26:42,375 Và xem có thể đặt một cái gì đó ở đây, ví dụ, chào mừng user.name. 489 00:26:42,375 --> 00:26:46,040 Vì vậy, nó sẽ nói, chào mừng John, chào đón James - 490 00:26:46,040 --> 00:26:47,390 một cái gì đó như thế, phải không? 491 00:26:47,390 --> 00:26:50,380 Vì vậy, tất cả những biến được sử dụng trong xem sẽ được nạp trong 492 00:26:50,380 --> 00:26:54,190 điều khiển và đang có được kéo lên từ mô hình. 493 00:26:54,190 --> 00:26:58,310 494 00:26:58,310 --> 00:27:00,555 >> Đây là ví dụ về một bộ điều khiển. 495 00:27:00,555 --> 00:27:03,140 496 00:27:03,140 --> 00:27:08,640 Vì vậy, chúng ta có, về cơ bản, mỗi - 497 00:27:08,640 --> 00:27:10,010 chúng ta gọi là những điều các hành động. 498 00:27:10,010 --> 00:27:11,570 Vì vậy, chỉ số này là một hành động. 499 00:27:11,570 --> 00:27:13,820 Đó là một chức năng Ruby. 500 00:27:13,820 --> 00:27:16,160 Đó là một phương pháp Ruby trong đó. 501 00:27:16,160 --> 00:27:19,350 Nhưng đối với các cuộc gọi điều khiển những điều các hành động. 502 00:27:19,350 --> 00:27:24,830 Và mỗi hành động có liên quan đến một con đường. 503 00:27:24,830 --> 00:27:29,350 Vì vậy, đây tuyến đường này, ví dụ, là một nhận tuyên bố / sách. 504 00:27:29,350 --> 00:27:37,500 Vì vậy, nếu bạn đi đến harvard2017.com/books, những gì sẽ xảy ra là mã này là 505 00:27:37,500 --> 00:27:40,630 sẽ được gọi. 506 00:27:40,630 --> 00:27:44,290 >> Và có một tập tin - 507 00:27:44,290 --> 00:27:46,010 hãy để tôi mở nhanh chóng thực này. 508 00:27:46,010 --> 00:27:51,310 509 00:27:51,310 --> 00:27:55,386 Có một tập tin gọi là tập tin thô. 510 00:27:55,386 --> 00:27:57,920 Nó không mở. 511 00:27:57,920 --> 00:28:02,330 Do đó, có một tập tin gọi là tập tin nguyên về cơ bản phù hợp - 512 00:28:02,330 --> 00:28:03,580 oh, bây giờ nó mở. 513 00:28:03,580 --> 00:28:15,900 514 00:28:15,900 --> 00:28:17,550 Ở đây, các tuyến đường. 515 00:28:17,550 --> 00:28:24,440 Vì vậy, về cơ bản phù hợp với một chủng, kích hoạt / mới ví dụ, để 516 00:28:24,440 --> 00:28:27,810 một cái gì đó trong bộ điều khiển. 517 00:28:27,810 --> 00:28:31,580 Do đó, có bộ điều khiển này được gọi là bộ điều khiển kích hoạt, nhưng ở đây, 518 00:28:31,580 --> 00:28:32,790 chúng tôi có những cuốn sách, ví dụ. 519 00:28:32,790 --> 00:28:33,740 Vì vậy, phù hợp - 520 00:28:33,740 --> 00:28:39,040 sách / mới, với bộ điều khiển sách, hành động mới. 521 00:28:39,040 --> 00:28:41,290 Vì vậy, về cơ bản, rất đơn giản điều. 522 00:28:41,290 --> 00:28:43,970 523 00:28:43,970 --> 00:28:48,770 >> Và ở đây, nếu bạn có để có được / sách, giảm ID trong những cuốn sách, cắt giảm mới, 524 00:28:48,770 --> 00:28:53,250 bạn sẽ đi đến đó Ruby phương pháp dưới đó. 525 00:28:53,250 --> 00:28:58,210 Vì vậy, ở đây, những gì chỉ số này đang làm chỉ là tải cuốn sổ ghi. 526 00:28:58,210 --> 00:28:59,570 Đó là một cái gì đó - 527 00:28:59,570 --> 00:29:02,160 Tôi đăng nhập tất cả các cuốn sách trong một bản ghi. 528 00:29:02,160 --> 00:29:03,050 Và sắp xếp tất cả. 529 00:29:03,050 --> 00:29:05,870 Vì vậy, đây sẽ trở lại tất cả các cuốn sách được sắp xếp. 530 00:29:05,870 --> 00:29:07,940 Đây là, một lần nữa, trong cơ sở dữ liệu. 531 00:29:07,940 --> 00:29:09,570 Vì vậy, đây là một phương pháp mô hình. 532 00:29:09,570 --> 00:29:12,440 Bạn đã thấy phương pháp này là tạo ra trong mô hình. 533 00:29:12,440 --> 00:29:16,170 Bây giờ điều này chỉ là tải tất cả các sách và đặt trong một biến 534 00:29:16,170 --> 00:29:17,490 có thể được nhìn thấy bởi quan điểm. 535 00:29:17,490 --> 00:29:20,680 >> Bởi vì bạn không thể, ở giữa mã HTML của bạn, bạn không thể gọi 536 00:29:20,680 --> 00:29:23,940 một cái gì đó trực tiếp từ mô hình, vì hai lý do. 537 00:29:23,940 --> 00:29:28,260 Đầu tiên, vì lý do an ninh vì nó không thực sự thú vị để được 538 00:29:28,260 --> 00:29:32,920 tải thông tin trực tiếp bên trong mỗi HTML đó là trong cơ sở dữ liệu. 539 00:29:32,920 --> 00:29:36,030 Và thứ hai, để giữ cho bạn mã thực sự có tổ chức. 540 00:29:36,030 --> 00:29:38,800 Vì vậy, tách chính xác các phần khác nhau. 541 00:29:38,800 --> 00:29:42,830 Vì vậy, BookLog.sorted_all, này trong cơ sở dữ liệu và điều này sẽ đưa vào 542 00:29:42,830 --> 00:29:44,290 một biến @ sách. 543 00:29:44,290 --> 00:29:47,695 Và bây giờ biến này có thể truy cập trong mã HTML của bạn. 544 00:29:47,695 --> 00:29:54,610 Vì vậy, bạn chỉ có thể đặt tất cả các sách có giống như chúng tôi đã làm, ngay tại đây. 545 00:29:54,610 --> 00:29:57,760 Đây là biến. 546 00:29:57,760 --> 00:30:04,730 >> Và thăm respond_to làm | dạng |, đây chỉ là một loại của Ruby cú pháp cho 547 00:30:04,730 --> 00:30:08,140 nếu người dùng đang yêu cầu tôi cho HTML code, tôi sẽ 548 00:30:08,140 --> 00:30:09,340 đáp ứng với mã HTML. 549 00:30:09,340 --> 00:30:15,500 Nếu người sử dụng yêu cầu tôi với mã JSON, đó là điều mà các ứng dụng web sử dụng 550 00:30:15,500 --> 00:30:20,780 để giao tiếp giữa chính họ, họ thường sử dụng JSON hoặc một số khác 551 00:30:20,780 --> 00:30:23,120 loại điều. 552 00:30:23,120 --> 00:30:25,850 Vì vậy, nó chỉ phản ứng bằng cách sử dụng những hai định dạng khác nhau. 553 00:30:25,850 --> 00:30:31,720 Nhưng đối với một người sử dụng bình thường, điều này sẽ không cần phải có mặt ở đây. 554 00:30:31,720 --> 00:30:34,060 Bạn sẽ chỉ trả lời với HTML, và đó là tốt. 555 00:30:34,060 --> 00:30:36,220 Vì vậy, không thực sự lo lắng rằng nhiều về việc này. 556 00:30:36,220 --> 00:30:39,510 Đây là dòng duy nhất của mã trong của chúng tôi kiểm soát vì nó tải từ HTML 557 00:30:39,510 --> 00:30:42,630 cơ sở dữ liệu, đặt trong một cái gì đó truy cập bằng xem. 558 00:30:42,630 --> 00:30:49,870 >> Và sau đó mới, do đó đây Tôi đang tạo ra cuốn sách. 559 00:30:49,870 --> 00:30:55,490 Tuy nhiên, để tạo ra sách, tôi cần một sinh viên bởi vì tôi cần phải biết học sinh 560 00:30:55,490 --> 00:30:58,490 có cuốn sách này thuộc về, phải. 561 00:30:58,490 --> 00:31:00,780 Vì vậy, sinh viên @ = sinh viên. 562 00:31:00,780 --> 00:31:06,500 Sinh viên, một lần nữa, chúng tôi đang bắt đầu với một S lớn là học sinh gương mẫu. 563 00:31:06,500 --> 00:31:09,380 OK, vì vậy đây là học sinh gương mẫu, đây là nhật ký mô hình cuốn sách. 564 00:31:09,380 --> 00:31:15,150 Student.find, vì vậy tôi sẽ tìm thấy một sinh viên sử dụng các thông số ID. 565 00:31:15,150 --> 00:31:19,160 params.id, điều này chỉ làm cho tôi giá trị ID này đã được thông qua - 566 00:31:19,160 --> 00:31:23,410 và URL. 567 00:31:23,410 --> 00:31:25,440 >> Chỉ cần đi để tìm kiếm các sinh viên đó. 568 00:31:25,440 --> 00:31:28,420 Và lần đầu tiên, chúng ta sẽ kiểm tra nếu học sinh có một số bài hát 569 00:31:28,420 --> 00:31:29,910 và blah, blah, blah. 570 00:31:29,910 --> 00:31:35,570 Và điều này đã được xử lý trường hợp khi học sinh 571 00:31:35,570 --> 00:31:38,340 không tồn tại, ví dụ. 572 00:31:38,340 --> 00:31:44,450 Và sau đó, nếu không, chúng tôi chỉ đáp ứng để điều tương tự bằng cách sử dụng HTML. 573 00:31:44,450 --> 00:31:47,570 Và sau đó chúng ta có thể cho phép người dùng tạo ra bài hát của họ. 574 00:31:47,570 --> 00:31:49,320 Vì vậy, đây là mới. 575 00:31:49,320 --> 00:31:52,580 Mới thường được sử dụng cho, cho người sử dụng tạo ra một cái gì đó. 576 00:31:52,580 --> 00:31:56,440 Và sau đó có những hành động tạo ra đó là thường được sử dụng cho - 577 00:31:56,440 --> 00:31:59,040 thực sự đặt các bài hát trong cơ sở dữ liệu hoặc một cái gì đó như thế. 578 00:31:59,040 --> 00:32:01,770 Nhưng một khi bạn bắt đầu sử dụng Rails, những điều đang có được 579 00:32:01,770 --> 00:32:05,110 nhiều, nhiều hơn nữa rõ ràng. 580 00:32:05,110 --> 00:32:07,910 OK, để nguội. 581 00:32:07,910 --> 00:32:09,715 Bất kỳ câu hỏi cho đến nay? 582 00:32:09,715 --> 00:32:15,240 Liệu nó có ý nghĩa với bộ điều khiển, các mô hình, các lĩnh vực - 583 00:32:15,240 --> 00:32:17,860 yeah? 584 00:32:17,860 --> 00:32:20,980 >> Một lần nữa trong ứng dụng bản đồ của bạn - 585 00:32:20,980 --> 00:32:24,700 vì vậy tất cả có thể được tìm thấy ở đây. 586 00:32:24,700 --> 00:32:30,430 Vì vậy, bạn có ứng dụng, điều khiển, những là tất cả các điều khiển của tôi. 587 00:32:30,430 --> 00:32:32,880 Vì vậy, ví dụ, sách kiểm soát. 588 00:32:32,880 --> 00:32:35,490 Đó là cái mà chúng ta chỉ nhìn thấy. 589 00:32:35,490 --> 00:32:36,400 Và sau đó quan điểm. 590 00:32:36,400 --> 00:32:39,750 Và mỗi bộ điều khiển có xem liên quan, phải không? 591 00:32:39,750 --> 00:32:43,750 Vì vậy, tự động khi bạn gọi này chỉ số ở đây, ví dụ, hoặc khi bạn 592 00:32:43,750 --> 00:32:49,930 gọi đây là cuốn sách mới, sau đó xem, sách, mới sẽ được gọi. 593 00:32:49,930 --> 00:32:53,300 >> Vì vậy, Rails làm mọi thứ tự động cho bạn. 594 00:32:53,300 --> 00:32:59,420 Vì vậy, mỗi bộ điều khiển đã một liên kết xem và tất cả các mô hình - 595 00:32:59,420 --> 00:33:01,970 ở đây tôi có một, hai, ba, bốn, năm mô hình. 596 00:33:01,970 --> 00:33:05,800 Nhưng đây là một mô hình sinh viên, do đó, những là các biến mà tất cả các 597 00:33:05,800 --> 00:33:08,620 học sinh có - nội địa hóa, ngày tháng năm sinh. 598 00:33:08,620 --> 00:33:11,270 Sinh viên là hơn một chút phức tạp vì mỗi học sinh có 599 00:33:11,270 --> 00:33:15,400 phương pháp khác nhau hơn liên quan đến nó. 600 00:33:15,400 --> 00:33:18,770 Nhưng điều này chỉ là xử lý bảng mà đã có tất cả các 601 00:33:18,770 --> 00:33:21,980 học sinh trong cơ sở dữ liệu. 602 00:33:21,980 --> 00:33:24,300 >> Và, OK, cài đặt Rails. 603 00:33:24,300 --> 00:33:27,710 Cài đặt Rails, phải trung thực, không phải là điều đơn giản nhất. 604 00:33:27,710 --> 00:33:32,980 Nhưng một khi bạn vượt qua tất cả mọi thứ, nó rất, rất dễ dàng. 605 00:33:32,980 --> 00:33:38,810 Vì vậy cài đặt Rails, bạn chỉ cần vào trang web, rubyandrails.org / tải 606 00:33:38,810 --> 00:33:41,510 và làm theo hướng dẫn của họ ở đó. 607 00:33:41,510 --> 00:33:42,700 Tải về tất cả mọi thứ. 608 00:33:42,700 --> 00:33:46,600 Và bạn có thể làm điều đó, hoặc trong gia dụng, trong CS50 gia dụng, trên 609 00:33:46,600 --> 00:33:51,120 Cửa sổ, trên máy Mac, hoặc bất kỳ hoạt động hệ thống của sự lựa chọn của bạn. 610 00:33:51,120 --> 00:33:52,460 Ruby on Rails chạy trên tất cả mọi thứ. 611 00:33:52,460 --> 00:33:56,680 >> Tỷ lệ cược là bạn đã có cài đặt của Ruby nếu bạn có một máy Mac hoặc - 612 00:33:56,680 --> 00:33:58,130 trong các thiết bị tôi nghĩ rằng Ruby là - 613 00:33:58,130 --> 00:34:00,940 Tôi không chắc. 614 00:34:00,940 --> 00:34:02,440 Và sau đó bạn chỉ cần cài đặt này. 615 00:34:02,440 --> 00:34:07,190 Và nếu bạn muốn tạo ra một mới ứng dụng web, bạn chỉ cần 616 00:34:07,190 --> 00:34:10,270 làm Rails, mới, blog. 617 00:34:10,270 --> 00:34:12,429 Đường ray, mới - 618 00:34:12,429 --> 00:34:13,310 Tôi không biết - 619 00:34:13,310 --> 00:34:15,050 tên của trang web của bạn. 620 00:34:15,050 --> 00:34:16,380 Và nó đơn giản mà. 621 00:34:16,380 --> 00:34:19,060 >> Nó sẽ tạo ra tất cả những tập tin tôi chỉ cho các bạn. 622 00:34:19,060 --> 00:34:22,730 Nhưng mô hình, quan điểm, và bộ điều khiển sẽ không được 623 00:34:22,730 --> 00:34:24,330 dân cư được nêu ra. 624 00:34:24,330 --> 00:34:28,710 Bạn chỉ sẽ phải đi đến đó và cư ba thư mục. 625 00:34:28,710 --> 00:34:32,840 Vì vậy, tỷ lệ cược là, bạn muốn tạo ra một mô hình, ví dụ, thực hiện một 626 00:34:32,840 --> 00:34:33,780 mô hình đầu tiên. 627 00:34:33,780 --> 00:34:40,440 Vì vậy, một lần nữa, luôn luôn cố gắng để cắn nhỏ hơn bit của một vấn đề tại một thời điểm. 628 00:34:40,440 --> 00:34:42,659 >> Và sau đó hãy nói, tạo ra một mô hình cho người dùng của bạn. 629 00:34:42,659 --> 00:34:44,370 Đó là điều đầu tiên nếu bạn có người sử dụng. 630 00:34:44,370 --> 00:34:48,440 Sau đó, tôi muốn tạo ra một mô hình giống như chúng ta thấy ở đây. 631 00:34:48,440 --> 00:34:58,470 Đường ray, tạo ra, mô hình, người sử dụng, và sau đó email chuỗi - chúng tôi có ở đây. 632 00:34:58,470 --> 00:35:01,200 Và chỉ cần tạo mô hình, có. 633 00:35:01,200 --> 00:35:05,030 Ray tạo ra mô hình Email của người dùng: string mật khẩu: string. 634 00:35:05,030 --> 00:35:09,650 >> Và sau đó bạn tạo ra một bộ điều khiển giao dịch với người sử dụng. 635 00:35:09,650 --> 00:35:12,790 Và bạn có thể tạo người dùng mới và làm những loại đồ vật. 636 00:35:12,790 --> 00:35:18,280 Và sau đó bạn có thể chuyển sang tạo phần còn lại của trang web của bạn. 637 00:35:18,280 --> 00:35:22,470 Mát mẻ, câu hỏi? 638 00:35:22,470 --> 00:35:23,230 Vâng. 639 00:35:23,230 --> 00:35:24,480 >> ĐỐI TƯỢNG: [nghe được] 640 00:35:24,480 --> 00:35:27,430 641 00:35:27,430 --> 00:35:29,910 >> GABRIEL Guimaraes: Có, có, bạn chắc chắn phải đi vào xem. 642 00:35:29,910 --> 00:35:31,290 Đó là một câu hỏi rất tốt. 643 00:35:31,290 --> 00:35:36,410 Vì vậy, quan điểm là những gì thực sự chứa HTML của bạn. 644 00:35:36,410 --> 00:35:39,240 Vì vậy, đó là những gì người sử dụng sẽ thấy. 645 00:35:39,240 --> 00:35:46,690 Một lần nữa, ở đây, đây là một ví dụ về một cái nhìn. 646 00:35:46,690 --> 00:35:52,040 Nó có HTML và Ruby mã ở cùng một thời điểm. 647 00:35:52,040 --> 00:35:56,010 Vì vậy, các mã Ruby là có đặt mọi thứ từ cơ sở dữ liệu, ví dụ, 648 00:35:56,010 --> 00:35:59,150 đã được nạp vào bộ điều khiển. 649 00:35:59,150 --> 00:36:04,240 Vì vậy, biến @ sách, ví dụ, có tất cả các cuốn sách và bảng 650 00:36:04,240 --> 00:36:05,340 sách tại cơ sở dữ liệu. 651 00:36:05,340 --> 00:36:08,680 Chúng tôi chắc chắn rằng nó có trong bộ điều khiển. 652 00:36:08,680 --> 00:36:10,250 >> Và xem - 653 00:36:10,250 --> 00:36:15,900 mỗi trang ra khỏi trang web của bạn sẽ có một quan điểm liên quan. 654 00:36:15,900 --> 00:36:21,762 Vì vậy, nếu bạn đi đến trang chủ, các trang đầu tiên, harvard2017.com. 655 00:36:21,762 --> 00:36:23,490 Điều đó cho thấy một trang. 656 00:36:23,490 --> 00:36:26,760 Và sau đó bạn đi đến cắt giảm hồ sơ cá nhân. 657 00:36:26,760 --> 00:36:30,150 Đó là sẽ đi đến một bộ điều khiển đó là một bộ điều khiển hồ sơ cá nhân. 658 00:36:30,150 --> 00:36:34,620 Và bộ điều khiển hồ sơ sẽ để cung cấp cho bạn xem hồ sơ. 659 00:36:34,620 --> 00:36:37,590 Và xem hồ sơ cá nhân là sẽ xem xét phần nào như thế này, nhưng nó sẽ 660 00:36:37,590 --> 00:36:41,910 có thông tin về người sử dụng, và không về những cuốn sách. 661 00:36:41,910 --> 00:36:46,840 >> Vì vậy, nó là mã HTML và CSS và những những điều mà người dùng nhìn thấy 662 00:36:46,840 --> 00:36:49,680 với mã Ruby - 663 00:36:49,680 --> 00:36:52,505 mà thực sự in thứ từ cơ sở dữ liệu. 664 00:36:52,505 --> 00:36:54,520 Là rõ ràng hơn? 665 00:36:54,520 --> 00:36:55,080 Tôi hy vọng. 666 00:36:55,080 --> 00:36:58,066 >> ĐỐI TƯỢNG: Các mã HTML được sử dụng để thực sự làm cho các trang web mà các 667 00:36:58,066 --> 00:37:02,470 người dùng nhìn thấy, nhưng các mã Ruby những gì làm cho công việc trang web? 668 00:37:02,470 --> 00:37:06,500 >> GABRIEL Guimaraes: Các mã Ruby được chuyển đổi sang HTML. 669 00:37:06,500 --> 00:37:09,420 Vì vậy, những gì người sử dụng được chỉ là HTML, OK? 670 00:37:09,420 --> 00:37:10,900 Nó chỉ HTML. 671 00:37:10,900 --> 00:37:18,740 Book.title này sẽ chuyển đổi sang giá trị của book.title trong HTML, OK. 672 00:37:18,740 --> 00:37:23,080 Vì vậy, đây là tất cả trong các máy chủ, và vì vậy này phụ thuộc vào những cuốn sách 673 00:37:23,080 --> 00:37:24,410 trong máy chủ ngay bây giờ. 674 00:37:24,410 --> 00:37:32,930 Nhưng những gì các máy chủ sẽ ngay lập tức nghĩa là chỉ có mã HTML, OK. 675 00:37:32,930 --> 00:37:36,720 >> Nhưng quan điểm chỉ cho cách bố trí của những gì HTML sẽ trông giống như 676 00:37:36,720 --> 00:37:39,530 và những gì các biến đang có được. 677 00:37:39,530 --> 00:37:42,170 Loại một hiện in, OK. 678 00:37:42,170 --> 00:37:44,360 Những điều có về cơ bản in outs. 679 00:37:44,360 --> 00:37:47,430 Họ sẽ in các biến, OK. 680 00:37:47,430 --> 00:37:49,850 Vì vậy, chỉ HTML, những là những gì - 681 00:37:49,850 --> 00:37:51,390 tác giả, tiêu đề, mô tả. 682 00:37:51,390 --> 00:37:53,540 Đó là nội dung tĩnh. 683 00:37:53,540 --> 00:37:54,520 Đó là sẽ không thay đổi. 684 00:37:54,520 --> 00:37:56,700 Đó là HTML code chỉ là đồng bằng. 685 00:37:56,700 --> 00:37:59,080 Đó là những outs in cho các biến - 686 00:37:59,080 --> 00:38:00,330 những điều mà phụ thuộc. 687 00:38:00,330 --> 00:38:02,350 688 00:38:02,350 --> 00:38:03,600 Mát mẻ, nhiều câu hỏi? 689 00:38:03,600 --> 00:38:12,120 690 00:38:12,120 --> 00:38:12,600 Tốt? 691 00:38:12,600 --> 00:38:13,080 Vâng. 692 00:38:13,080 --> 00:38:15,720 >> ĐỐI TƯỢNG: Tôi nghĩ rằng bạn đã làm tất cả chỉnh sửa trong một văn bản khác nhau 693 00:38:15,720 --> 00:38:16,920 chương trình chỉnh sửa. 694 00:38:16,920 --> 00:38:19,520 Chúng ta cũng nên tải về mà? 695 00:38:19,520 --> 00:38:24,250 >> GABRIEL Guimaraes: Vâng, tôi thích này soạn thảo văn bản được gọi là TextMate. 696 00:38:24,250 --> 00:38:24,990 Và nó thực sự tốt. 697 00:38:24,990 --> 00:38:26,980 Nó cũng phù hợp với Ruby. 698 00:38:26,980 --> 00:38:29,270 Nó màu điều rất gọn gàng. 699 00:38:29,270 --> 00:38:34,770 Vì vậy, TextMate, T-E-X-T. Tôi sẽ đặt rằng, giữ - 700 00:38:34,770 --> 00:38:42,880 701 00:38:42,880 --> 00:38:45,720 >> Tôi có nghĩa là bạn có thể sử dụng gedit hoặc bất cứ điều gì bạn muốn. 702 00:38:45,720 --> 00:38:49,970 Nhưng điều này là cụ thể cho Mac, và điều này thực sự gọn gàng bởi vì nó đặt tất cả các 703 00:38:49,970 --> 00:38:51,000 các file của bạn xuống ở đó. 704 00:38:51,000 --> 00:38:53,620 Và Ruby on Rails, bạn cần để chuyển đổi các tập tin rất nhiều. 705 00:38:53,620 --> 00:38:55,890 Vì vậy, nó rất, rất nhiều tập tin chỉ đi từ một tập tin, chuyển đến 706 00:38:55,890 --> 00:38:57,120 một tập tin hay khác. 707 00:38:57,120 --> 00:39:02,000 Vì vậy, TextMate là một trong rất tốt, nhưng có rất nhiều ra khỏi đó. 708 00:39:02,000 --> 00:39:03,250 Nhiều câu hỏi? 709 00:39:03,250 --> 00:39:08,680 710 00:39:08,680 --> 00:39:09,870 OK, đúng không? 711 00:39:09,870 --> 00:39:12,825 >> ĐỐI TƯỢNG: Có một sự phát triển điện thoại di động thông qua Ruby on Rails? 712 00:39:12,825 --> 00:39:15,640 713 00:39:15,640 --> 00:39:17,050 >> GABRIEL Guimaraes: Tôi đã nghe nói về điều này. 714 00:39:17,050 --> 00:39:19,550 Tôi đã không được sử dụng chúng. 715 00:39:19,550 --> 00:39:21,570 Bạn có thể nghiên cứu thêm về điều đó. 716 00:39:21,570 --> 00:39:24,740 Tôi không chắc chắn nếu có bất kỳ điều tốt ra khỏi đó. 717 00:39:24,740 --> 00:39:29,980 718 00:39:29,980 --> 00:39:31,030 OK, đúng không? 719 00:39:31,030 --> 00:39:32,280 >> ĐỐI TƯỢNG: [nghe được] 720 00:39:32,280 --> 00:39:38,340 721 00:39:38,340 --> 00:39:40,550 >> GABRIEL Guimaraes: Không Rails, có lẽ của Ruby mảng. 722 00:39:40,550 --> 00:39:44,270 723 00:39:44,270 --> 00:39:49,080 Mở ra một cửa sổ thiết bị đầu cuối và chủng loại, "Ruby". 724 00:39:49,080 --> 00:39:52,030 Vâng, có lẽ, và sau đó bạn chỉ cần cài đặt Rails. 725 00:39:52,030 --> 00:39:57,050 Nhưng nếu bạn đang đi để cài đặt mới Ray 4.0, mà tôi đánh giá cao đề nghị, 726 00:39:57,050 --> 00:40:02,870 bạn nên tải về của Ruby 2.0. 727 00:40:02,870 --> 00:40:04,530 Đó là cái mới quá. 728 00:40:04,530 --> 00:40:09,530 Và Rails mới 4,0 có một cái gì đó thực sự mát mẻ mà 729 00:40:09,530 --> 00:40:11,260 nó đến tài sản. 730 00:40:11,260 --> 00:40:12,810 Nó xử lý tài sản. 731 00:40:12,810 --> 00:40:18,860 Tài sản lại là những hình ảnh, các tập tin CSS, và các tập tin JavaScript. 732 00:40:18,860 --> 00:40:24,060 Vì vậy, một điều thực sự gọn gàng mà Ruby on Đường ray không cho bạn là tất cả những CSS 733 00:40:24,060 --> 00:40:26,980 tập tin mà bạn có và tất cả mọi thứ - 734 00:40:26,980 --> 00:40:32,420 nó chỉ bó tất cả mọi thứ vào một tập tin rất lớn, không có dấu hoặc bất cứ điều gì, 735 00:40:32,420 --> 00:40:40,120 giảm thiểu thời gian người sử dụng cần tải về mã từ máy chủ của bạn. 736 00:40:40,120 --> 00:40:47,780 >> Vì vậy, khi bạn nhìn thấy trong máy tính của bạn, nó sẽ có như 15 file CSS. 737 00:40:47,780 --> 00:40:49,520 Hoặc nhiều, nhiều tập tin CSS khác nhau. 738 00:40:49,520 --> 00:40:54,890 Nhưng vào cuối ngày, những gì Rails tự động không cho bạn là nó đặt 739 00:40:54,890 --> 00:41:00,760 tất cả mọi thứ lại với nhau thành một tập tin lớn để nó giảm thiểu thời gian yêu cầu. 740 00:41:00,760 --> 00:41:02,630 Đó là thực sự mát mẻ. 741 00:41:02,630 --> 00:41:02,940 Có? 742 00:41:02,940 --> 00:41:04,190 >> ĐỐI TƯỢNG: [nghe được] 743 00:41:04,190 --> 00:41:13,910 744 00:41:13,910 --> 00:41:14,440 >> GABRIEL Guimaraes: Chính xác. 745 00:41:14,440 --> 00:41:16,230 Vì vậy, tích hợp Google Maps. 746 00:41:16,230 --> 00:41:20,200 Đó là một API JavaScript từ Google. 747 00:41:20,200 --> 00:41:23,750 Vì vậy, tôi chỉ đi đến trang web của Google. 748 00:41:23,750 --> 00:41:29,950 Họ có Google Maps API này và tôi tải về mã và tích hợp nó 749 00:41:29,950 --> 00:41:31,610 vào quan điểm của tôi. 750 00:41:31,610 --> 00:41:35,490 Vì vậy, những gì tôi cần phải làm điều đó là tôi cần thiết để có được 751 00:41:35,490 --> 00:41:37,310 địa điểm từ cơ sở dữ liệu. 752 00:41:37,310 --> 00:41:38,990 Đã được thực hiện trong bộ điều khiển. 753 00:41:38,990 --> 00:41:40,950 Vì vậy, tôi đã đi đến điều khiển - 754 00:41:40,950 --> 00:41:42,350 đâu là bộ điều khiển. 755 00:41:42,350 --> 00:41:44,330 Bộ điều khiển trông như thế này. 756 00:41:44,330 --> 00:41:48,660 Có tất cả các vị trí của các sinh viên, đặt tất cả chúng vào một lớn 757 00:41:48,660 --> 00:41:52,060 biến, một danh sách lớn, mà có tất cả các địa điểm. 758 00:41:52,060 --> 00:41:55,340 >> Và trong quan điểm, bởi vì JavaScript API là một cái gì đó trong 759 00:41:55,340 --> 00:41:55,800 xem, phải không? 760 00:41:55,800 --> 00:42:00,440 Vì JavaScript chạy trong HTML của bạn mã, nó sẽ được gửi đến 761 00:42:00,440 --> 00:42:01,710 máy của người dùng. 762 00:42:01,710 --> 00:42:09,310 Và trong quan điểm, tôi nạp tất cả điều đó thông tin vào các API của Google. 763 00:42:09,310 --> 00:42:12,080 Và nó đã làm tất cả điều đó cho tôi, đó là thực sự mát mẻ. 764 00:42:12,080 --> 00:42:16,240 Nhưng nếu bạn muốn sử dụng những thứ trong back-end, và nó giống như một thư viện, cho 765 00:42:16,240 --> 00:42:18,720 Ví dụ, một lần nữa - 766 00:42:18,720 --> 00:42:20,140 sự tích hợp với Facebook. 767 00:42:20,140 --> 00:42:24,060 Đó là điều mà nhiều, rất nhiều, nhiều ứng dụng đang sử dụng hiện nay. 768 00:42:24,060 --> 00:42:27,300 >> Vì vậy, có tích hợp với Facebook bởi vì nó rất dễ dàng hơn để chỉ 769 00:42:27,300 --> 00:42:30,450 đăng nhập với Facebook hơn để tạo ra một tài khoản và blah, blah, blah. 770 00:42:30,450 --> 00:42:35,120 Sau đó, bạn chỉ cần sử dụng một viên ngọc và nó như đơn giản như đi tập đá quý của bạn. 771 00:42:35,120 --> 00:42:39,350 Tập đá quý là một tập tin gọi là tập tin đá quý trong thư mục nguồn của Ruby trên 772 00:42:39,350 --> 00:42:40,370 Ray dự án. 773 00:42:40,370 --> 00:42:43,700 Chỉ cần đến đó và thêm đá quý mới. 774 00:42:43,700 --> 00:42:45,300 Và bạn nhìn nó lên trên Google. 775 00:42:45,300 --> 00:42:46,520 Có rất nhiều, rất nhiều, rất nhiều đá quý. 776 00:42:46,520 --> 00:42:51,070 Có một mà cụ thể nào này cho tích hợp Facebook. 777 00:42:51,070 --> 00:42:54,660 Tôi không chắc chắn những gì tên của nó. 778 00:42:54,660 --> 00:42:56,680 Chỉ cần Google nó và bạn sẽ tìm thấy nó. 779 00:42:56,680 --> 00:42:57,930 OK, câu hỏi nhiều hơn? 780 00:42:57,930 --> 00:43:01,110 781 00:43:01,110 --> 00:43:03,280 Tuyệt vời, cảm ơn các bạn đã đến. 782 00:43:03,280 --> 00:43:09,227