1 00:00:00,000 --> 00:00:08,560 2 00:00:08,560 --> 00:00:10,410 >> Gabriel Guimarães: Ito ay CS50. 3 00:00:10,410 --> 00:00:14,740 Maligayang pagdating sa kahanga-hangang Web Apps may Ruby sa daang-bakal. 4 00:00:14,740 --> 00:00:19,700 Kaya para sa sinuman kung sino ang interesado sa web mga website pagpapaunlad at paggawa, web 5 00:00:19,700 --> 00:00:26,510 application, Ruby sa daang-bakal ay ito kamangha-manghang mga tool na Twitter, GitHub, 6 00:00:26,510 --> 00:00:31,470 Groupon, at lahat ng uri ng talagang maganda, at malaki, mga web application na ginagamit sa 7 00:00:31,470 --> 00:00:33,080 nakalipas na ilang mga taon. 8 00:00:33,080 --> 00:00:37,190 At ito ay isang talagang, talagang cool na tampok na ito, ang isang cool na tool, 9 00:00:37,190 --> 00:00:39,290 dahil ito ang bago. 10 00:00:39,290 --> 00:00:43,830 Kaya mayroon itong lahat ng mga bagong malakas teknolohiya nakasama sa isa 11 00:00:43,830 --> 00:00:49,050 framework na tumutulong sa mga haharapin mo sa lahat ng uri ng mga kamangha-manghang mga bagay. 12 00:00:49,050 --> 00:00:50,970 >> Ngunit kung ano ay isang framework? 13 00:00:50,970 --> 00:00:55,700 Kaya isang framework ay isa lamang isang bagay na lumilikha - 14 00:00:55,700 --> 00:00:59,680 kapag nagsimula ka ng isang website, kung sinimulan mo mula sa simula, tulad ng binuksan mo ang 15 00:00:59,680 --> 00:01:04,530 gedit doon, at gusto mong code lahat ng iyong HTML, at code sa lahat ng iyong 16 00:01:04,530 --> 00:01:08,130 PHP, ang lahat ng iyong CSS, ang lahat ng bagay mula sa simula - 17 00:01:08,130 --> 00:01:09,690 na lamang ang pagpunta sa maging ng maraming trabaho. 18 00:01:09,690 --> 00:01:13,940 At isang framework Literal na nagbibigay sa iyo ng kalahati ng website tapos na. 19 00:01:13,940 --> 00:01:18,070 Kaya magsimula sa kalahati ng isang website na may mayroong lahat ng bagay para sa iyo. 20 00:01:18,070 --> 00:01:22,690 Tulad ng mga koneksyon sa database, at lahat ng mga uri ng mga bagay na mayroon kang mag-alala 21 00:01:22,690 --> 00:01:25,040 tungkol sa kung gumagawa ka ng ito mula sa simula, hindi mo kailangang mag-alala tungkol sa mga 22 00:01:25,040 --> 00:01:26,480 mga detalye ng mababang antas. 23 00:01:26,480 --> 00:01:32,360 >> Ngunit ngayon kami ay pagpunta sa i-export ang isa sa ang mga website na ang presman ng 24 00:01:32,360 --> 00:01:34,740 klase ng 2017 ay marahil pamilyar. 25 00:01:34,740 --> 00:01:40,170 Kaya website na ito ay ang website na ako ginawa para sa aming klase sa ibabaw ng tag-init. 26 00:01:40,170 --> 00:01:46,500 Ito ay isang website kung saan ang mga mag-aaral ng ang klase ng 2017 ay maaaring mag-log in at 27 00:01:46,500 --> 00:01:47,480 makipag-ugnayan sa isa't isa. 28 00:01:47,480 --> 00:01:49,610 At pagkatapos ay ito ay isang mapa - 29 00:01:49,610 --> 00:01:51,210 lahat, kung saan ang mga tao ay. 30 00:01:51,210 --> 00:01:56,970 At nagkaroon kami ng isang laro ng libro, isang kanta laro kung saan nakita namin ang mga kanta ng mga tao at 31 00:01:56,970 --> 00:01:57,970 aklat ng mga tao. 32 00:01:57,970 --> 00:02:00,480 Ano gusto nilang basahin, kung ano gusto nila upang makinig sa. 33 00:02:00,480 --> 00:02:06,830 At ang pinaka-kagiliw-giliw na bahagi nito ay na ito literal na kinuha sa akin tatlong oras 34 00:02:06,830 --> 00:02:07,840 sa code ng lahat ng ito. 35 00:02:07,840 --> 00:02:13,050 Dahil kung nagkaroon kong gawin ang lahat mula sa sa simula, tulad ng pagbubukas up gedit, ito 36 00:02:13,050 --> 00:02:16,400 Gusto marahil kinuha ako 20, 30 na oras. 37 00:02:16,400 --> 00:02:20,210 Ngunit sa Ruby sa daang-bakal, dahil ang lahat ng bagay ay nag-set up para sa akin, 38 00:02:20,210 --> 00:02:25,550 ito kinuha lang ako ng tatlo o apat na oras, o ang isang bagay tulad na. 39 00:02:25,550 --> 00:02:27,580 >> Kaya kung ano ang Ruby sa daang-bakal. 40 00:02:27,580 --> 00:02:32,720 Ruby sa daang-bakal, muli bilang namin na sinabi, ay isang framework. 41 00:02:32,720 --> 00:02:34,800 Ito ay isang larawan ng isang framework. 42 00:02:34,800 --> 00:02:37,460 Kaya ka pagpunta upang simulan ang pagbuo ng isang bahay, ikaw ay mayroon ng kalahati ng 43 00:02:37,460 --> 00:02:38,320 tapos na bahay. 44 00:02:38,320 --> 00:02:38,970 Iyan ang framework. 45 00:02:38,970 --> 00:02:40,560 At Ruby sa daang-bakal ay eksakto katulad na. 46 00:02:40,560 --> 00:02:44,440 At dapat mong isipin ito bilang, simulan mo isang website, simulan mo ang iyong web 47 00:02:44,440 --> 00:02:48,830 application, kami ay mayroon ng kalahati ng ito tapos doon. 48 00:02:48,830 --> 00:02:50,400 Ngunit una sa lahat, ano ang Ruby? 49 00:02:50,400 --> 00:02:53,510 50 00:02:53,510 --> 00:02:58,310 Ruby sa daang-bakal ay gumagamit ng view ng modelo controller, na kung saan ay tularan, na 51 00:02:58,310 --> 00:02:59,930 ay isang talagang kawili-wiling - 52 00:02:59,930 --> 00:03:04,250 at lahat ng mga application ngayong mga araw na ito gamitin ang isang bagay tulad na. 53 00:03:04,250 --> 00:03:08,630 Ang ideya ng paghihiwalay ng mga bagay sa tatlong bahagi, ang modelo, ang view, at 54 00:03:08,630 --> 00:03:09,630 ang controller. 55 00:03:09,630 --> 00:03:11,950 Kami ay pagpunta sa makipag-usap ng kaunti higit pa tungkol sa na mamaya. 56 00:03:11,950 --> 00:03:13,400 >> Una, ano ang Ruby? 57 00:03:13,400 --> 00:03:14,500 Kaya ito ay Ruby. 58 00:03:14,500 --> 00:03:17,850 At ito ay ang simbolo ng wika na tinatawag na Ruby. 59 00:03:17,850 --> 00:03:24,170 Ruby ay isa sa mga newish kahulugan wika, kaya script. 60 00:03:24,170 --> 00:03:29,530 Ito ay isang wika na hindi pinagsama-sama tulad ng C. Ito ay pinagsama-sama sa run. 61 00:03:29,530 --> 00:03:33,220 Kaya na maganda dahil, tulad ng PHP, halimbawa ay kahulugan din, ay 62 00:03:33,220 --> 00:03:33,960 hindi pinagsama-sama. 63 00:03:33,960 --> 00:03:35,710 Iyan ay mahusay na dahil portable nito. 64 00:03:35,710 --> 00:03:39,740 Kaya pumasa ka lamang ang iyong code mula sa isa machine sa isa pang. 65 00:03:39,740 --> 00:03:44,440 Mula sa isang Linux machine, sa isang Windows machine, sa isang Mac o Apple machine, o 66 00:03:44,440 --> 00:03:45,240 ang isang bagay tulad na. 67 00:03:45,240 --> 00:03:49,160 At hindi mo kailangang mag-alala tungkol sa mga detalye tungkol sa bawat isa sa mga tiyak na 68 00:03:49,160 --> 00:03:49,890 mga operating system. 69 00:03:49,890 --> 00:03:51,330 Ang nangyayari Ito upang gumana sa lahat ng dako. 70 00:03:51,330 --> 00:03:54,700 >> At Ruby ay isang wika na - 71 00:03:54,700 --> 00:03:56,920 marahil tandaan ito sa iyo guys. 72 00:03:56,920 --> 00:04:01,440 Ang mga taong gamitin ang hash ipinatupad sa C para sa hash talahanayan 73 00:04:01,440 --> 00:04:04,860 huling linggo at nagkaroon ng lahat ng uri ng segmentation faults. 74 00:04:04,860 --> 00:04:12,360 At pagkatapos ay mga bagay na nag-aalala tungkol sa kung ang na string i doon, ang string i 75 00:04:12,360 --> 00:04:20,380 dito, ay talagang Maliit na titik o sa malaki, o mga uri ng nakakaligalig 76 00:04:20,380 --> 00:04:21,410 mga detalye ng mababang antas. 77 00:04:21,410 --> 00:04:26,180 Well sa Ruby, kung gusto mong ipatupad isang hash talahanayan, ito ay eksaktong kung paano mo 78 00:04:26,180 --> 00:04:27,100 lumikha ng hash table. 79 00:04:27,100 --> 00:04:30,280 Sasabihin mo, diksyonaryo, iyon ang pangalan ng aking mga variable, = "Hash.new". 80 00:04:30,280 --> 00:04:34,680 At pagkatapos diksyunaryo ["foo"], at kapag ako ay pagdaragdag ng foo sa aking hash talahanayan, ako 81 00:04:34,680 --> 00:04:35,960 lamang sinasabi foo ay doon. 82 00:04:35,960 --> 00:04:38,070 >> At pagkatapos ay kung Nais kong suriin kung foo noon ay doon, lamang ako sabihin kung 83 00:04:38,070 --> 00:04:40,270 diksiyunaryo ["foo"] == totoo return totoo. 84 00:04:40,270 --> 00:04:41,560 Whoa, at iyon ang iyong talahanayan ng hash. 85 00:04:41,560 --> 00:04:44,280 Iyan ang pagpapatupad ng hash talahanayan sa Ruby. 86 00:04:44,280 --> 00:04:50,200 Kaya naisin lahat ng tao maaari silang magkaroon ginagamit ang isang bagay tulad Ruby para sa huling 87 00:04:50,200 --> 00:04:51,450 pset linggong ito, tama? 88 00:04:51,450 --> 00:04:54,410 89 00:04:54,410 --> 00:04:59,050 Mayroon kaming lahat ng uri ng mga dahilan upang gusto gumamit ng isang wika tulad ng Ruby. 90 00:04:59,050 --> 00:05:01,380 Ruby May hiyas. 91 00:05:01,380 --> 00:05:04,000 Mamahaling bato ay isang pangalan para sa isang uri ng library sa Ruby. 92 00:05:04,000 --> 00:05:07,490 >> Kaya lahat ng mga uri ng kawili-wiling tampok na maaari kang magkaroon, halimbawa, kung ako 93 00:05:07,490 --> 00:05:09,280 nais na isama ang aking application. 94 00:05:09,280 --> 00:05:12,470 Iyon Harvard 2017 application ay integrated sa Facebook. 95 00:05:12,470 --> 00:05:15,810 Kaya maaari mong mag-log in, sa pamamagitan ng Facebook, upang ang app. 96 00:05:15,810 --> 00:05:19,760 Kaya't kung ikaw ay pagpunta sa gawin iyon, hindi mo gusto kailangang mag-alala tungkol sa pagpapadala ng ilang mga 97 00:05:19,760 --> 00:05:23,760 Kahilingan ng HTTP sa Facebook, at naghihintay para sa mga tugon, at pagpilit na ang 98 00:05:23,760 --> 00:05:25,150 tugon, at blah, blah, blah. 99 00:05:25,150 --> 00:05:29,120 I-download mo lang ang mga hiyas na ang lahat na para sa iyo. 100 00:05:29,120 --> 00:05:30,750 At pagkatapos ay hindi mo kailangang mag-alala tungkol sa lahat ng iyon. 101 00:05:30,750 --> 00:05:33,670 >> At pagkatapos ng maraming tulong online, siyempre. 102 00:05:33,670 --> 00:05:37,040 Maraming, maraming, maraming mga website na ay pumunta upang matulungan kang parehong may 103 00:05:37,040 --> 00:05:38,880 Ruby at may daang-bakal. 104 00:05:38,880 --> 00:05:40,530 At ito ay maraming masaya sa code. 105 00:05:40,530 --> 00:05:46,770 Mismong dahil maaari mong ihinto nababahala tungkol sa mga hindi kaya masaya mga problema. 106 00:05:46,770 --> 00:05:50,690 Tulad ng kung ang isang bagay ay maliliit na titik o mga malaking titik, at pagkatapos ay ito bakit 107 00:05:50,690 --> 00:05:54,500 magbibigay sa iyo ng segmentation fault, at Maaari mo ba talagang sumisid sa pinakadulo 108 00:05:54,500 --> 00:05:55,460 kagiliw-giliw na mga bagay-bagay. 109 00:05:55,460 --> 00:05:59,650 Upang sumisid sa talagang cool na mga problema. 110 00:05:59,650 --> 00:06:02,420 >> Kaya Ruby ay tulad lang sa C sa isang katuturan. 111 00:06:02,420 --> 00:06:05,950 Kaya ito ay hindi pagpunta sa maging na malaki ng isang jump talaga. 112 00:06:05,950 --> 00:06:09,470 Kaya naglalagay, na aming i-print app sa Ruby. 113 00:06:09,470 --> 00:06:12,790 Sa tingin ko maaari kang gumamit ng masyadong naka-print, ngunit naglalagay ay kung ano ang ginagamit ng lahat. 114 00:06:12,790 --> 00:06:14,490 Kaya lang naglalagay ng "Hello World". 115 00:06:14,490 --> 00:06:21,400 Maaari mong, o maaaring hindi mo, mayroon ang panaklong libid 116 00:06:21,400 --> 00:06:23,280 "Hello World" doon. 117 00:06:23,280 --> 00:06:25,350 Maaari mo lamang piliin kung o hindi na gamitin iyon. 118 00:06:25,350 --> 00:06:26,780 At pagkatapos ay x = "1". 119 00:06:26,780 --> 00:06:29,030 Ang isang habang loop mukhang maganda ang parehong magkano. 120 00:06:29,030 --> 00:06:30,630 Ito lamang may mas kaunting syntax. 121 00:06:30,630 --> 00:06:32,590 Ito ay uri ng cleaner kaunti. 122 00:06:32,590 --> 00:06:37,380 At pagkatapos ay kung x> 25 Inilalagay "Big!" at iba pa naglalagay ng "Maliit na ...". 123 00:06:37,380 --> 00:06:39,070 At ito ay uri ng C sa na kahulugan. 124 00:06:39,070 --> 00:06:41,630 >> Kaya't kung tiningnan mo ang iyon, maaari kang marahil maunawaan diskarte 125 00:06:41,630 --> 00:06:42,890 ang lahat ng bagay na nangyayari. 126 00:06:42,890 --> 00:06:47,750 Ngunit ito ay mas malakas na. 127 00:06:47,750 --> 00:06:54,520 Higit pang makapangyarihang dahil, higit sa na, Maaari ko itong bagay ang hindi na - 128 00:06:54,520 --> 00:06:55,750 ang ilang mga uri ng hackage kaunti. 129 00:06:55,750 --> 00:06:57,430 Sa C hindi mo maaaring gawin sa gawin lamang sa isang linya. 130 00:06:57,430 --> 00:06:58,680 Halimbawa, naglalagay "Ako # {x}". 131 00:06:58,680 --> 00:07:04,330 132 00:07:04,330 --> 00:07:11,100 Ito ay lamang na syntax para ilagay ang halaga ng x dito, at huwag i-print ang 133 00:07:11,100 --> 00:07:12,160 karakter x. 134 00:07:12,160 --> 00:07:17,850 Sa C na kayo ay nagkaroon na gawin ang porsiyento d, at pagkatapos ay ilagay up ng variable x pagkatapos ng 135 00:07:17,850 --> 00:07:19,730 kuwit dito, o isang bagay tulad na. 136 00:07:19,730 --> 00:07:22,220 >> At sa Ruby mayroong isang shorthand para lang ginagawa iyon. 137 00:07:22,220 --> 00:07:27,830 At naglalagay ito, kung x> 3, kaya maaari kang ilagay ang kung ang lahat sa isang linya. 138 00:07:27,830 --> 00:07:29,010 At pagkatapos ay isang listahan. 139 00:07:29,010 --> 00:07:33,320 Mga Listahan sa C, tulad ng isang array, kailangan mong subaybayan kung gaano kalaki ang iyong mga array ay o 140 00:07:33,320 --> 00:07:34,720 kung hindi man kumuha ka ng isang segmentation kasiraan. 141 00:07:34,720 --> 00:07:36,210 Ang iyong array ay lamang ng isang uri. 142 00:07:36,210 --> 00:07:38,790 Kaya ito ay alinman sa isang hanay ng mga pagsingil o isang hanay ng mga integer. 143 00:07:38,790 --> 00:07:43,620 Sa kasong ito, nilikha ko ang isang listahan dito, na ang isang array, na may unang 144 00:07:43,620 --> 00:07:48,450 elemento ay isang string, John, at pagkatapos ay apat, dalawang - mga mga integer. 145 00:07:48,450 --> 00:07:53,590 At pagkatapos ay idagdag ko lang, listahan, ang Kaliwang Anggulo Bracket, Kaliwa 146 00:07:53,590 --> 00:07:54,820 Anggulo Bracket, tatlo. 147 00:07:54,820 --> 00:07:58,170 Iyon ay nangangahulugang ang ikabit lamang isang bagay sa aking listahan. 148 00:07:58,170 --> 00:08:01,630 >> Kaya uri ng higit pang mga kagiliw-giliw na dahil kung ginusto mong gamitin ito bilang 149 00:08:01,630 --> 00:08:03,920 lamang ng isang simpleng listahan ng mga integer, magagawa mo, lahat-lahat. 150 00:08:03,920 --> 00:08:05,530 Iyan ay lubos fine. 151 00:08:05,530 --> 00:08:06,750 Ilagay lang integer doon. 152 00:08:06,750 --> 00:08:10,240 Ngunit kung ginusto mong gawin ang isang bagay na mas nakakahimok, na may iba pang mga 153 00:08:10,240 --> 00:08:11,690 mga bagay, na may - 154 00:08:11,690 --> 00:08:15,480 Hindi ko alam, ang lahat ng mga uri ng mga listahan sa doon, o iba pang mga bagay na higit na 155 00:08:15,480 --> 00:08:16,970 kawili-wiling, maaari mong lubos gawin iyon. 156 00:08:16,970 --> 00:08:17,880 Ito ay lubos fine. 157 00:08:17,880 --> 00:08:21,210 At pagkatapos ay kung gusto mong umulit sa pamamagitan ng ang listahan, maaari mong gamitin ang 158 00:08:21,210 --> 00:08:24,850 higit pa C-HDR uri ng diskarte. 159 00:08:24,850 --> 00:08:29,970 Iyon ay para sa loop, mo upang pasimulan ang isang variable, i = "1", o i = "0". 160 00:08:29,970 --> 00:08:32,980 At pagkatapos kang umalis, at umulit, at makakuha ng lahat ng mga elemento. 161 00:08:32,980 --> 00:08:37,559 >> Ngunit maaari mo ring gamitin ito higit Ruby-tulad ng diskarte. 162 00:08:37,559 --> 00:08:40,289 Iyon ay tulad ng isang list.each. 163 00:08:40,289 --> 00:08:45,230 Na lang sinasabi, bumalik sa akin lahat ng mga elemento ng listahan. 164 00:08:45,230 --> 00:08:49,120 At gawin sa bawat elemento, tumawag sa kanila elem. 165 00:08:49,120 --> 00:08:51,880 Kaya ito ay lamang ng isang pangalan na ako pagbibigay sa bawat elemento. 166 00:08:51,880 --> 00:08:56,630 At ngayon ito ay pagpunta sa ulitin para sa lahat ang mga elemento, at elem, ito ay pagpunta 167 00:08:56,630 --> 00:09:00,790 upang maging ang paraan na aming ma-access ang na single na elemento. 168 00:09:00,790 --> 00:09:04,310 Kaya maaari mong ganap dumikit ang C diskarte, ngunit ito gumagana masyadong. 169 00:09:04,310 --> 00:09:07,970 At ito ay eksakto ang parehong bagay, ang OK. 170 00:09:07,970 --> 00:09:13,830 >> At bukod sa na, ito ay talagang, talagang madali upang pagsamahin Ruby at HTML 171 00:09:13,830 --> 00:09:17,010 dahil sa iyo guys ay interesado sa mga web application. 172 00:09:17,010 --> 00:09:20,070 HTML ay talagang isang bagay na ka pagpunta sa gumamit ng maraming. 173 00:09:20,070 --> 00:09:25,820 At dito kung nais mong ilagay Ruby sa HTML, simulan lang dito, <%. 174 00:09:25,820 --> 00:09:28,500 Ibig sabihin, dito Ruby nagsisimula. 175 00:09:28,500 --> 00:09:32,130 At pagkatapos ay%>, uri ng tulad ng PHP sa na kahulugan. 176 00:09:32,130 --> 00:09:35,520 Narito Ruby nagtatapos at pagkatapos ay maaari kang ilagay lang ang iyong kung in dito. 177 00:09:35,520 --> 00:09:39,400 At pagkatapos Mayroon akong ilang mga variable user.logged_in. 178 00:09:39,400 --> 00:09:45,120 Sa Ruby, kadalasan idagdag namin iyon, alinman sa interogasyon mark o exclamation 179 00:09:45,120 --> 00:09:48,210 mark, tulad ng isang character na bangko, lamang sa uri ng 180 00:09:48,210 --> 00:09:49,480 makilala sa pagitan ng aming mga pag-andar. 181 00:09:49,480 --> 00:09:52,780 Ngunit inilagay mo lang na para sa iyong sariling alang-alang. 182 00:09:52,780 --> 00:09:56,910 Ito ay hindi isang bagay na ang mga pagbabago kahit ano sa ang pag-andar. 183 00:09:56,910 --> 00:10:01,160 >> Kaya lamang ipaalala sa akin na ito ay isang function na - at pag-andar sa Ruby, 184 00:10:01,160 --> 00:10:06,650 sa halip na C, tulad ng sinabi ko na, hindi nila kailangang ang mga panaklong. 185 00:10:06,650 --> 00:10:09,740 Kaya na naka-log in bagay, na isang function, na isang pamamaraan. 186 00:10:09,740 --> 00:10:12,990 Ngunit hindi mo tahasang kailangan upang ilagay ang mga panaklong sa doon. 187 00:10:12,990 --> 00:10:16,030 Kaya lang tinatanong kung ang user log in, at kung ang user-log in ka, ngayon 188 00:10:16,030 --> 00:10:17,100 Muli ay nagsisimula HTML. 189 00:10:17,100 --> 00:10:21,670 Kaya Maligayang pagdating, at dito I-print ko ang user.name. 190 00:10:21,670 --> 00:10:22,920 At na ito. 191 00:10:22,920 --> 00:10:24,970 192 00:10:24,970 --> 00:10:30,420 Kaya na medyo tuwid forward, kung paano sa iyo na isama Ruby sa iyong HTML. 193 00:10:30,420 --> 00:10:34,560 At mga mapagkukunan, tulad ng sinabi ko, may mga lahat ng uri ng mga mapagkukunan para sa Ruby. 194 00:10:34,560 --> 00:10:39,560 Ikaw guys maaari lahat tumingin ito up pagkatapos dahil pareho sa video, at 195 00:10:39,560 --> 00:10:40,875 ang mga slide, ay pumunta sa maging online na magagamit. 196 00:10:40,875 --> 00:10:44,620 197 00:10:44,620 --> 00:10:47,180 >> At ngayon sabihin makapunta sa daang-bakal. 198 00:10:47,180 --> 00:10:48,330 Daang-bakal ay pag-ibig. 199 00:10:48,330 --> 00:10:49,230 Daang-bakal - 200 00:10:49,230 --> 00:10:51,030 kaya Ruby ay kanyang wika. 201 00:10:51,030 --> 00:10:54,340 OK, tulad ng PHP, gusto lamang Python. 202 00:10:54,340 --> 00:10:59,980 Ito ay isang wika mataas na antas, hindi gusto C. Isang gitnang, mababang antas na wika C sa 203 00:10:59,980 --> 00:11:05,240 ang pakiramdam na Ruby hindi mo kailangang i- mag-alala tungkol sa memory reallocation, at 204 00:11:05,240 --> 00:11:07,300 mga payo, at mga uri ng mga bagay. 205 00:11:07,300 --> 00:11:11,120 Ngunit daang-bakal ay ang program na ito na ay isinulat sa Ruby. 206 00:11:11,120 --> 00:11:15,610 At ginagamit nito Ruby, upang magkaroon ito framework, para sa iyo upang ma- 207 00:11:15,610 --> 00:11:18,990 bumuo ng mga kahanga-hangang mga web application. 208 00:11:18,990 --> 00:11:21,940 >> Kaya kailangan mo munang i-install Ruby sa iyong machine, ngunit karamihan sa mga makina 209 00:11:21,940 --> 00:11:22,630 Mayroon na iyon. 210 00:11:22,630 --> 00:11:24,800 At pagkatapos ay i-install ang daang-bakal sa tuktok ng ito. 211 00:11:24,800 --> 00:11:26,540 Kami ay pagpunta sa makipag-usap tungkol sa na mamaya. 212 00:11:26,540 --> 00:11:28,100 At bakit daang-bakal? 213 00:11:28,100 --> 00:11:31,470 Kaya MVC, iyon ang controller view ng modelo usapan natin ang tungkol sa isang maliit na 214 00:11:31,470 --> 00:11:36,050 bit, ginagawang mas simple ang lahat ng bagay dahil ito divides mga bagay na 215 00:11:36,050 --> 00:11:42,420 conceptually iba't ibang sa iba't-ibang mga bahagi ng iyong application. 216 00:11:42,420 --> 00:11:45,930 Mas kaunting oras na ginugol sa mga problema sa mababang antas, muli, at napaka, napaka 217 00:11:45,930 --> 00:11:46,820 sikat ngayon. 218 00:11:46,820 --> 00:11:52,130 Kaya para sa lahat ng mga taong interesado sa ang start up scene, o sa isang bagay 219 00:11:52,130 --> 00:11:58,435 tulad ng simula sa mga negosyo, at ang mga tao sa merkado na teknolohiya na 220 00:11:58,435 --> 00:12:02,440 simula ng kanilang sariling mga negosyo sa ngayon ay talagang, talagang tagahanga ng Ruby sa 221 00:12:02,440 --> 00:12:04,120 Daang-bakal dahil ito ay kaya mabilis. 222 00:12:04,120 --> 00:12:07,510 >> Kaya maaari kang makakuha ng isang bagay up at Tumatakbo sa mas mababa sa isang araw, at iyon ang 223 00:12:07,510 --> 00:12:10,410 talagang isang napaka nakahihimok argumento na gamitin ang Ruby. 224 00:12:10,410 --> 00:12:13,460 At daang-bakal 4.0 - 225 00:12:13,460 --> 00:12:15,920 ay masyadong sariwa mula sa oven ngayon. 226 00:12:15,920 --> 00:12:16,930 Kaya daang-bakal 4.0 - 227 00:12:16,930 --> 00:12:20,180 Sa tingin ko ang unang release ay Marso sa taong ito. 228 00:12:20,180 --> 00:12:23,460 At ito ay talagang maganda, mayroon itong lahat mga uri ng bago, cool na tampok. 229 00:12:23,460 --> 00:12:30,290 Kaya Ruby sa daang-bakal ay isang framework na Patuloy ina-update na magkaroon ng lahat 230 00:12:30,290 --> 00:12:31,540 ng mga bagong teknolohiya. 231 00:12:31,540 --> 00:12:33,710 232 00:12:33,710 --> 00:12:39,800 >> Ang unang pagkakataon na sinubukan kong gamitin ang Ruby sa Daang-bakal, nagkaroon ako ng problema na ito dahil ako 233 00:12:39,800 --> 00:12:44,540 Nilikha ang aking unang web application, at ito ay tumingin nang eksakto tulad na. 234 00:12:44,540 --> 00:12:49,020 Kaya lumilikha nito ang lahat ng mga file na iyon para sa iyo, at ako ay walang ideya kung ano - 235 00:12:49,020 --> 00:12:50,780 kung ano ito? 236 00:12:50,780 --> 00:12:54,850 Nilikha nito ang lahat ng mga file na iyon, at ako lamang Nais lumikha ng simpleng programa, isang 237 00:12:54,850 --> 00:12:57,140 simpleng website HTML. 238 00:12:57,140 --> 00:12:59,680 At maaaring hindi ko kahit na gumawa ng kahit ano. 239 00:12:59,680 --> 00:13:02,430 Kaya ako ay isang maliit na bit mabigla. 240 00:13:02,430 --> 00:13:08,350 Ngunit iyon lamang ang isa sa mga bagay na sa sandaling ikaw maunawaan ito, ang lahat ng bagay ay nagiging kaya 241 00:13:08,350 --> 00:13:09,190 magkano ang mas malinaw. 242 00:13:09,190 --> 00:13:15,750 Kaya huwag ma-nalulula ka sa unang paningin ng kung ano lumikha ka sa unang. 243 00:13:15,750 --> 00:13:18,430 >> Kaya kung ano ang mangyayari ay daang-bakal ay lumilikha lahat ng mga file na iyon. 244 00:13:18,430 --> 00:13:20,470 Kaya isa sa mga iyon ay doc, dokumentasyon. 245 00:13:20,470 --> 00:13:23,080 Db, na may kaugnayan sa database. 246 00:13:23,080 --> 00:13:25,060 Lib, na aklatan mag-log. 247 00:13:25,060 --> 00:13:28,200 Pampublikong, script, at ilang mga bagay. 248 00:13:28,200 --> 00:13:32,110 Pretty magkano lahat ka ng pagpunta sa mag-alala tungkol ay ang folder ng app, hanggang doon. 249 00:13:32,110 --> 00:13:34,430 Iyan ang folder na naglalaman ng ang iyong application. 250 00:13:34,430 --> 00:13:35,540 Ang lahat ng mga iba pang mga file - 251 00:13:35,540 --> 00:13:37,770 ang ilan sa kanila ay mahalaga, at ikaw ay pagpunta upang malaman ang tungkol na sa ibang pagkakataon. 252 00:13:37,770 --> 00:13:42,040 Ngunit ang mga ito dito lamang sa magtaglay ng mga balangkas. 253 00:13:42,040 --> 00:13:46,420 Kaya ang unang cornerstones ng bahay ka guys ay pagbuo, OK? 254 00:13:46,420 --> 00:13:47,730 >> Ngunit ang folder ng app - 255 00:13:47,730 --> 00:13:49,630 iyon ang talagang mahalaga isa. 256 00:13:49,630 --> 00:13:53,050 At ang folder ng app ay may mga ari-arian. 257 00:13:53,050 --> 00:13:57,690 Asset ay medyo magkano ang lahat ng bagay na darating. 258 00:13:57,690 --> 00:14:01,890 Mga Larawan halimbawa, ang lahat ng bagay na static na pupuntahan-download 259 00:14:01,890 --> 00:14:03,450 sa iyong website. 260 00:14:03,450 --> 00:14:06,850 Kaya mga larawan, JavaScript, CSS - 261 00:14:06,850 --> 00:14:08,520 mga uri ng mga bagay ang mga asset. 262 00:14:08,520 --> 00:14:11,310 263 00:14:11,310 --> 00:14:12,260 Controllers - 264 00:14:12,260 --> 00:14:15,190 kami ay pagpunta sa makipag-usap ang nalalaman tungkol sa ano ang mga controllers, modelo, 265 00:14:15,190 --> 00:14:16,800 at mga patlang sa isang segundo. 266 00:14:16,800 --> 00:14:20,760 At Katulong ang function na sa iyo Maaaring gamitin ng lahat ng higit sa iyong mga code 267 00:14:20,760 --> 00:14:22,800 upang matulungan kang magawa ang isang bagay. 268 00:14:22,800 --> 00:14:25,800 Mga Pag-andar tulad log in, para sa halimbawa - user.loggedin. 269 00:14:25,800 --> 00:14:29,500 Iyan ay isang function na malamang na kailangang gamitin sa lahat ng mga bahagi ng iyong 270 00:14:29,500 --> 00:14:30,030 application. 271 00:14:30,030 --> 00:14:33,590 Kaya maaari kang maglagay ng isang bagay tulad ng na sa iyong lingkod. 272 00:14:33,590 --> 00:14:34,370 >> Mailers - 273 00:14:34,370 --> 00:14:41,480 na kung gumagamit ka ng pagpunta sa magpadala isang email sa iyong mga gumagamit, ikaw 274 00:14:41,480 --> 00:14:43,420 nais na gumamit ng isang mailer. 275 00:14:43,420 --> 00:14:46,420 At modelo at mga tanawin, kami ay pagpunta pag-uusapan na ngayon. 276 00:14:46,420 --> 00:14:52,450 Kaya ang controller view ng modelo, na ang pangunahing pundasyon ng Ruby sa 277 00:14:52,450 --> 00:14:55,730 Daang-bakal, at pinaka Framework ngayong mga araw na ito, upang maging matapat. 278 00:14:55,730 --> 00:15:01,180 Kaya muli, ihiwalay namin ang lahat ng aming code sa tatlong iba't ibang bahagi. 279 00:15:01,180 --> 00:15:02,590 Ang modelong - 280 00:15:02,590 --> 00:15:04,620 ang modelo ay isa lamang sa database. 281 00:15:04,620 --> 00:15:06,090 Ito humahawak ng mga bagay sa database. 282 00:15:06,090 --> 00:15:10,790 >> Kaya bawat talahanayan sa database ay may nakaayon file sa loob ng modelo. 283 00:15:10,790 --> 00:15:13,330 Kaya ito ay uri ng isang talahanayan para sa iyong mga user. 284 00:15:13,330 --> 00:15:18,250 Kaya ka sa pag-iimbak ng impormasyon tulad ng user name, ang kanilang mga email, ang kanilang mga 285 00:15:18,250 --> 00:15:20,970 address, ang kanilang password, at mga bagay tulad na. 286 00:15:20,970 --> 00:15:24,535 Ikaw ay pagpunta sa may isang file sa ang modelo na tinatawag na rb user - 287 00:15:24,535 --> 00:15:26,240 rb para sa Ruby. 288 00:15:26,240 --> 00:15:30,180 At nagkaroon ka ng pagpunta sa mayroon ng lahat sa mga pamamaraan at mga variable. 289 00:15:30,180 --> 00:15:34,130 Ang mga variable ay pagpunta sa Tumutugon upang ang user name, email, at 290 00:15:34,130 --> 00:15:35,370 ang lahat. 291 00:15:35,370 --> 00:15:37,760 >> At ka ng pagpunta sa mayroon ang mga pamamaraan. 292 00:15:37,760 --> 00:15:42,690 Iyon ay magiging isang bagay na nauukol - 293 00:15:42,690 --> 00:15:46,400 ka pagpunta upang mahawakan ang impormasyong ito sa database. 294 00:15:46,400 --> 00:15:50,220 Upang lumikha ng isang modelo sa daang-bakal, gamitin mo lamang bumuo ng daang-bakal. 295 00:15:50,220 --> 00:15:54,990 At upang lumikha ng mga bagay na sa daang-bakal, mo talaga kailangan ang terminal. 296 00:15:54,990 --> 00:15:58,770 Kaya ito ay isang napaka terminal batay framework. 297 00:15:58,770 --> 00:16:02,530 Mag-log ka lang sa terminal, at huwag daang-bakal, bumuo ng modelo. 298 00:16:02,530 --> 00:16:04,670 At ang pangalan ng modelo ay gumagamit. 299 00:16:04,670 --> 00:16:10,270 At gusto ko lang na magkaroon ng dalawang variable, dalawang haligi, sa aking mga talahanayan. 300 00:16:10,270 --> 00:16:11,450 Kaya na email. 301 00:16:11,450 --> 00:16:13,080 Email ay isang uri ng string. 302 00:16:13,080 --> 00:16:15,450 Password, password ay din ng isang uri ng string. 303 00:16:15,450 --> 00:16:16,520 Iyon ang mga lamang ang dalawang bagay. 304 00:16:16,520 --> 00:16:19,160 Ito ay uri ng isang simplistic talahanayan ng gumagamit. 305 00:16:19,160 --> 00:16:22,490 Ngunit ganap mo maaaring ilagay sa isang daang bagay naroon kung gusto mo sa. 306 00:16:22,490 --> 00:16:27,620 >> At daang-bakal ay gumagawa din ito napaka, napakasimple na magkaroon ng lahat 307 00:16:27,620 --> 00:16:30,040 mga uri ng mga pakikipag-ugnayan sa database. 308 00:16:30,040 --> 00:16:36,100 Kaya kadalasan, kapag mayroon kang mga talahanayan sa iyong database, ang mga ito ay hindi talaga 309 00:16:36,100 --> 00:16:37,570 independiyenteng ng isa't isa. 310 00:16:37,570 --> 00:16:39,392 Ni isipin ang tungkol Hayaan. 311 00:16:39,392 --> 00:16:42,960 Gusto mong bumili at magbenta mga produkto sa online. 312 00:16:42,960 --> 00:16:46,620 OK, sa gayon mayroon kang isang website kung saan mo nais bumili at magbenta ng mga produkto. 313 00:16:46,620 --> 00:16:55,060 Kaya ang bawat gumagamit ay may maraming mga produkto na ang user na ito ay nais na ibenta. 314 00:16:55,060 --> 00:17:00,970 At ang bawat gumagamit ay mayroon ding maraming mga transaksyon na patuloy na, o 315 00:17:00,970 --> 00:17:01,920 ang isang bagay tulad na. 316 00:17:01,920 --> 00:17:05,430 At ang mga transaksyon ay sa ibang gumagamit. 317 00:17:05,430 --> 00:17:08,310 Nabibilang ang bawat transaksyon sa dalawang iba't ibang mga gumagamit. 318 00:17:08,310 --> 00:17:10,560 Ang user na bumibili at ang gumagamit na nagbebenta ng. 319 00:17:10,560 --> 00:17:13,920 >> Kaya mga ay ang tinatawag na relasyon database. 320 00:17:13,920 --> 00:17:17,890 At dito mayroon kaming eksaktong mga keyword na iyon, ay maraming at ay kabilang sa. 321 00:17:17,890 --> 00:17:19,500 Iyon ang mga pinaka-mahalaga sa buhay. 322 00:17:19,500 --> 00:17:22,410 At lamang ka ng pagpunta sa sabihin, para sa Halimbawa, ito ang halimbawa ng isang 323 00:17:22,410 --> 00:17:25,740 modelo sa Harvard 2017 website. 324 00:17:25,740 --> 00:17:28,820 Muli, ang mga mag-aaral sa dito - 325 00:17:28,820 --> 00:17:32,870 bawat mag-aaral sa website, mag-aaral ay isang modelo, ay isang database ng table. 326 00:17:32,870 --> 00:17:37,560 Ang bawat mag-aaral ay nagkaroon ng maraming mga libro dahil sa iyo Maaaring sabihin, kung ano ang mga paborito 327 00:17:37,560 --> 00:17:38,630 mga libro, i-right. 328 00:17:38,630 --> 00:17:44,450 Kaya nabibilang ang bawat libro sa isang mag-aaral down na dito. 329 00:17:44,450 --> 00:17:46,910 At ipatungkol naa-access - 330 00:17:46,910 --> 00:17:49,580 na lang sinasabi, mga ay ang mga variable. 331 00:17:49,580 --> 00:17:53,050 Yaong ay naa-access ang mga variable mula sa modelong ito. 332 00:17:53,050 --> 00:17:58,570 At ang mga variable ay ang mga may-akda ng sa libro, paglalarawan, genre, at 333 00:17:58,570 --> 00:17:59,870 pamagat ng libro. 334 00:17:59,870 --> 00:18:02,700 Kaya lamang ang impormasyon ukol sa libro. 335 00:18:02,700 --> 00:18:06,410 >> At dito Mayroon akong isang pamamaraan na simpleng uri ang lahat. 336 00:18:06,410 --> 00:18:10,710 Kaya tukuyin at tapusin dito, ito lamang ay na nagsasabi, dito ay ang aking paraan. 337 00:18:10,710 --> 00:18:13,220 Self.sorted_all. 338 00:18:13,220 --> 00:18:16,390 Na lang, ibigay sa akin ang lahat ng bagay pinagsunod-sunod, at iyon ang kung paano mo ipatupad 339 00:18:16,390 --> 00:18:22,360 ang pag-uuri algorithm, na kung saan ay medyo madali. 340 00:18:22,360 --> 00:18:27,430 Ngunit isa lamang, ito ay kung paano mukhang isang modelo tulad ng, OK. 341 00:18:27,430 --> 00:18:32,990 Sinuman mayroon ba katanungan patungkol sa ito ang database ng bagay? 342 00:18:32,990 --> 00:18:33,736 Relations? 343 00:18:33,736 --> 00:18:36,430 Malinaw ba iyon? 344 00:18:36,430 --> 00:18:37,125 Oo. 345 00:18:37,125 --> 00:18:38,490 >> Madla: Maari gawin mo ang algorithm uri? 346 00:18:38,490 --> 00:18:41,960 >> Gabriel Guimarães: Ang sort algorithm, OK. 347 00:18:41,960 --> 00:18:45,340 Kapag nag-masanay Ruby syntax, ito ay pagpunta sa maging malinaw. 348 00:18:45,340 --> 00:18:48,800 Ngunit talaga, elems ay Book.all. 349 00:18:48,800 --> 00:18:50,820 Kaya libro ay ang pangalan ng aking mga modelo. 350 00:18:50,820 --> 00:18:55,670 Kapag lumikha ka ng isang modelo, ito ay may lahat ng uri ng magaling na mga pamamaraan para sa iyo. 351 00:18:55,670 --> 00:18:58,810 Kaya dot.all ay isang pamamaraan na Ibinabalik ng lahat ng mga libro. 352 00:18:58,810 --> 00:19:02,560 Ngunit mahanap, halimbawa, ay maghanap para sa isang libro at bumalik sa librong iyon, o 353 00:19:02,560 --> 00:19:03,840 ang isang bagay tulad na. 354 00:19:03,840 --> 00:19:05,990 At kaya elems ay ang lahat. 355 00:19:05,990 --> 00:19:08,870 At lang ako sa sinasabi elems.sort. 356 00:19:08,870 --> 00:19:11,300 Pagbukud-bukurin ay isang built-in na Ruby function. 357 00:19:11,300 --> 00:19:13,526 >> At, gawin ab. 358 00:19:13,526 --> 00:19:15,940 Kaya ito ako muli ay - 359 00:19:15,940 --> 00:19:17,400 ka pagpunta upang ayusin. 360 00:19:17,400 --> 00:19:19,850 Ngunit ka pagpunta upang makakuha ng ito argumento para sa akin. 361 00:19:19,850 --> 00:19:25,160 At ang mga argumento ay gumagamit ng - ito ay isa sa mga ang mas mahirap mga bagay sa Ruby talaga, 362 00:19:25,160 --> 00:19:26,920 ito gawin bagay. 363 00:19:26,920 --> 00:19:31,470 Ngunit sa sandaling maunawaan mo ito ang lahat ng bagay ay napaka, napaka-intuitive. 364 00:19:31,470 --> 00:19:37,140 Kaya ang ab, ito ay nagsasabi sa lugar may hawak na pupuntahan ko gagamitin - tulad ng 365 00:19:37,140 --> 00:19:41,760 ang mga variable sa pupuntahan ko gamitin, ay pagpunta sa ay tinatawag na isang at b. 366 00:19:41,760 --> 00:19:43,380 At iyon ay ang mga libro. 367 00:19:43,380 --> 00:19:47,120 >> Kaya dahil kailangan uri sa ihambing mga elemento, alalahanin na? 368 00:19:47,120 --> 00:19:49,760 Kaya kapag pagbukud-bukurin ka bagay, mo paghambingin ang dalawang mga elemento. 369 00:19:49,760 --> 00:19:51,900 Pupunta ako sa sinasabi na ang bawat oras ka pagpunta sa ihambing - 370 00:19:51,900 --> 00:19:54,350 kaya ito ay, ako pagpasa upang ayusin ang isang argumento. 371 00:19:54,350 --> 00:19:59,370 At ang mga argumento ay ang lahat ng bagay mula sa do at dito, OK? 372 00:19:59,370 --> 00:20:02,980 At ito argument, ay lamang na nagsasabi sa -uri-uriin kung paano upang ihambing. 373 00:20:02,980 --> 00:20:07,460 Pagbukud-bukurin gagana dito, ngunit ito Gusto ihambing ang kanilang mga 374 00:20:07,460 --> 00:20:09,530 ide-default ng paghahambing ng algorithm. 375 00:20:09,530 --> 00:20:13,810 Gusto ko ito upang ihambing sa isang napaka-tukoy na paraan, lalo, kapag ang mga aklat 376 00:20:13,810 --> 00:20:16,900 Nilikha, kapag ang bawat aklat ay nilikha. 377 00:20:16,900 --> 00:20:21,090 >> Kaya ako sinasabi ko, sabihin ang pangalan ng unang aklat ay isang at ang pangalan ng 378 00:20:21,090 --> 00:20:27,620 ikalawang aklat bilang b, gusto ko maisasa-ayos upang ayusin isang bagay batay sa b.created_at ito 379 00:20:27,620 --> 00:20:30,000 kakaiba simbolo, a.created_at. 380 00:20:30,000 --> 00:20:34,350 At na simbolo kakaiba ay shorthand para kung ang isa ay mas malaki kaysa sa 381 00:20:34,350 --> 00:20:35,380 isa, bumalik 1. 382 00:20:35,380 --> 00:20:37,450 Kung ang isa ay katumbas ng isa, bumalik sa zero. 383 00:20:37,450 --> 00:20:41,180 Kung ang isa ay mas maliit kaysa sa isa, balik minus 1. 384 00:20:41,180 --> 00:20:43,435 Kaya ang ginagawa na simbolo kakaiba ay. 385 00:20:43,435 --> 00:20:46,680 386 00:20:46,680 --> 00:20:47,500 >> Ngunit hindi iyon mahalaga. 387 00:20:47,500 --> 00:20:52,780 Ibig kong sabihin, kung ano ang gusto ko sa inyo guys upang makakuha ng ngayon ay ang ideya na ang database - 388 00:20:52,780 --> 00:20:54,150 maaari kang magkaroon ng modelo doon. 389 00:20:54,150 --> 00:20:59,850 Kaya hindi mo kailangang mag-alala tungkol sa pagkonekta at paggamit ng SQL pahayag, 390 00:20:59,850 --> 00:21:00,500 at mga bagay tulad na. 391 00:21:00,500 --> 00:21:04,920 Maaari rin itong lumikha ng mga pinto sa SQL iniksyon at lahat 392 00:21:04,920 --> 00:21:06,460 mga uri ng mga problema sa seguridad. 393 00:21:06,460 --> 00:21:07,930 Sa kasong ito, hindi mo gusto mag-alala tungkol sa na. 394 00:21:07,930 --> 00:21:11,880 Gamitin mo lang ang mga pamamaraan tulad ng book.all. 395 00:21:11,880 --> 00:21:15,210 At iyon, sa background ng kurso, ay pagpunta sa iyong database, at ito ay 396 00:21:15,210 --> 00:21:17,570 pagpunta sa gumamit ng isang SQL pahayag upang makakuha ng lahat ng mga libro. 397 00:21:17,570 --> 00:21:19,650 Ngunit hindi mo kailangang i- mag-alala tungkol sa na. 398 00:21:19,650 --> 00:21:24,090 Iyan ang takeaway, OK? 399 00:21:24,090 --> 00:21:26,790 >> At kapag mayroon kang isang belongs_to pahayag tulad nito, ay nangangahulugan na na 400 00:21:26,790 --> 00:21:31,780 sa sandaling mayroon ka ng libro sa bagay, mo Maaari makita kung ano ang mag-aaral nito. 401 00:21:31,780 --> 00:21:34,130 Kaya kung aling mga mag-aaral ay may mga aklat na ito? 402 00:21:34,130 --> 00:21:38,760 Kaya maaari lamang naming gamitin book.student, at na nagbibigay sa iyo kung ano ang mag-aaral ay. 403 00:21:38,760 --> 00:21:42,440 At iyon ang isang talagang nagtatampok magkaroon. 404 00:21:42,440 --> 00:21:43,950 >> OK, ngayon ang view. 405 00:21:43,950 --> 00:21:48,380 Kaya ang modelo ay kung ano ang nakikipag-ugnayan sa database, tama? 406 00:21:48,380 --> 00:21:52,240 Tanaw Ang ay isa lamang ng HTML, at CSS, at ang ilan sa JavaScript. 407 00:21:52,240 --> 00:21:55,080 At na kung ano ang user talaga nakikita. 408 00:21:55,080 --> 00:21:56,540 Ang gumagamit na hindi pagpunta sa makita ang iyong database. 409 00:21:56,540 --> 00:22:00,290 Siya ang nangyayari upang makita ang ilang mga data mula sa database na naka-embed sa viewer. 410 00:22:00,290 --> 00:22:04,940 411 00:22:04,940 --> 00:22:08,410 Ruby sa daang-bakal Ginagawang talaga simpleng upang gumawa ng mga patlang. 412 00:22:08,410 --> 00:22:12,780 Una, dahil na lumilikha ito ito para sa iyo, sa labas ng kahon, isang layout. 413 00:22:12,780 --> 00:22:16,200 >> Ang isang layout ay isa lamang ng isang bagay na - 414 00:22:16,200 --> 00:22:24,230 kung ang lahat ng iyong mga pahina ay may logo sa tuktok at, hindi ko alam, ang ilang mga menu o 415 00:22:24,230 --> 00:22:29,000 ang isang bagay tulad na, na ang lahat ng iyong mga pahina ibahagi sa karaniwan, pagkatapos ay hindi mo gusto 416 00:22:29,000 --> 00:22:34,830 kailangan upang lumikha ng maraming, maraming, maraming mga HTML mga file na kung saan ang lahat ng mga file mayroon na 417 00:22:34,830 --> 00:22:36,830 parehong HTML code. 418 00:22:36,830 --> 00:22:40,700 Ibig kong sabihin na pipi dahil ikaw lamang paulit-ulit na code sa iba't ibang mga file. 419 00:22:40,700 --> 00:22:42,480 Iyon ay talagang hindi mahusay na diskarte. 420 00:22:42,480 --> 00:22:45,660 >> Kaya Ruby sa daang-bakal ay lumilikha ito layout para sa iyo. 421 00:22:45,660 --> 00:22:49,770 At ito ay sinasabi lang, lahat ng aking mga pahina ay pagpunta sa may ito ng HTML, ito ulo 422 00:22:49,770 --> 00:22:54,805 pamagat dito, at iyon ay style sheet link na tag. 423 00:22:54,805 --> 00:22:56,800 Plug in dito lahat ng aking mga CSS. 424 00:22:56,800 --> 00:23:01,194 Plug in dito sa lahat ng aking JavaScript at ilang mga meta tag. 425 00:23:01,194 --> 00:23:04,440 Iyan ay isang bagay lamang na sila Awtomatikong magawa para sa iyo. 426 00:23:04,440 --> 00:23:07,490 At pagkatapos, tapusin ang ulo, ngayon dito nagsisimula ang katawan. 427 00:23:07,490 --> 00:23:09,780 At ngayon ito ay ang aking aktwal na nilalaman. 428 00:23:09,780 --> 00:23:16,620 Kaya kung nais kong ilagay ang isang bagay tulad, isang menu dito, Gusto ko itong ilagay sa kanan sa ibabaw 429 00:23:16,620 --> 00:23:19,600 ang lugar na ito, o isang bagay tulad na, upang ang lahat ng aking mga pahina Ibinahagi ito. 430 00:23:19,600 --> 00:23:21,730 Kaya ang layout ay ibinabahagi sa pamamagitan ng lahat ng mga pahina. 431 00:23:21,730 --> 00:23:26,500 >> Ngayon na ani dito lang sabi, walang kahit na ano ang mga pahina na ito ay nasa, lamang 432 00:23:26,500 --> 00:23:30,560 plug in ang nilalaman ng na page in dito, OK? 433 00:23:30,560 --> 00:23:33,770 At ngayon ito ay, halimbawa, ang nilalaman ng isang pahina na pupuntahan maging 434 00:23:33,770 --> 00:23:38,950 naka-plug in ang ani pahayag Awtomatikong sa pamamagitan ng daang-bakal. 435 00:23:38,950 --> 00:23:40,700 Ngunit ito ay isang layout Nagbahagi sa pamamagitan ng lahat ng mga pahina. 436 00:23:40,700 --> 00:23:42,500 At ito ay isang halimbawa ng isang pahina. 437 00:23:42,500 --> 00:23:46,410 At ito ay eksaktong pahina na naglilista ng lahat ng mga libro. 438 00:23:46,410 --> 00:23:49,390 Kaya ito ay isang pangunahing HTML talahanayan up tuktok. 439 00:23:49,390 --> 00:23:53,730 Kaya ng listahan ng mga libro, ang pamagat, may-akda, paglalarawan, genre. 440 00:23:53,730 --> 00:24:00,810 >> At dito namin ginagamit, muli, ang ilang mga Ruby syntax, @ books.each-- 441 00:24:00,810 --> 00:24:07,720 @ Uri ng sabi na ang iyong mga variable ay global sa isang katuturan. 442 00:24:07,720 --> 00:24:10,940 Dahil ito variable ay talagang ipinahayag sa controller na 443 00:24:10,940 --> 00:24:12,840 ka pagpunta upang makita ngayon. 444 00:24:12,840 --> 00:24:18,570 Ngunit tumagal lamang para sa ipinagkaloob na ito @ Aklat ay isang variable na ay isang listahan ng mga 445 00:24:18,570 --> 00:24:20,000 lahat ng mga libro. 446 00:24:20,000 --> 00:24:24,580 Kaya books.each, huwag, at muli, ito ay lamang na nagsasabi kung gaano ang gusto mong ipangalan sa 447 00:24:24,580 --> 00:24:29,580 bawat isa sa mga iterators nang sa gayon ay hindi namin kailangang mag-alala tungkol sa isang apat na, int i 448 00:24:29,580 --> 00:24:30,630 blah, blah, blah. 449 00:24:30,630 --> 00:24:33,760 Tumagal lang namin ang bawat isa sa mga elemento at gamitin ang mga ito. 450 00:24:33,760 --> 00:24:38,890 >> Kaya ito ay ang libro, at pagkatapos lamang i-print dito. book.title, book.author, 451 00:24:38,890 --> 00:24:41,020 book.description, at blah, blah, blah. 452 00:24:41,020 --> 00:24:42,940 At narito ang isang LINK_TO. 453 00:24:42,940 --> 00:24:46,840 Kaya LINK_TO lamang ang link na tag na maaaring i-click ang isang user sa at 454 00:24:46,840 --> 00:24:49,040 napupunta sa isa pang website. 455 00:24:49,040 --> 00:24:51,160 LINK_TO, ipakita na partikular na libro. 456 00:24:51,160 --> 00:24:56,480 Kaya kung ang gumagamit ay napaka-interesado sa aklat na ito, pagkatapos ay siya ay maaaring mag-click sa show. 457 00:24:56,480 --> 00:24:59,350 O mag-click sa i-edit, kung nais ni siya i-edit ang libro. 458 00:24:59,350 --> 00:25:03,560 O kaya sirain, kung nais ni siya upang tanggalin ang aklat mula sa database. 459 00:25:03,560 --> 00:25:06,260 OK, ang ibig na saysay? 460 00:25:06,260 --> 00:25:08,610 Mahusay. 461 00:25:08,610 --> 00:25:10,600 >> Sa wakas, ang controller. 462 00:25:10,600 --> 00:25:17,150 Kaya isa lamang ang controller ay ang interface sa pagitan ng mga 463 00:25:17,150 --> 00:25:20,040 modelo at ang view. 464 00:25:20,040 --> 00:25:25,120 Kaya ang modelo ay ang bahagi ng iyong code na may database - 465 00:25:25,120 --> 00:25:27,620 bawat talahanayan sa database ay isang nauukol na file sa 466 00:25:27,620 --> 00:25:30,120 modelo, at iba pa. 467 00:25:30,120 --> 00:25:34,890 At kung paano gawin ang mga modelo at ang view nakikipag-ugnayan? 468 00:25:34,890 --> 00:25:36,990 Kaya, sa pamamagitan ng controller. 469 00:25:36,990 --> 00:25:43,620 Ano ang isang controller gumagana ay nito ay ang modelo para sa isang bagay tulad ng, halimbawa, 470 00:25:43,620 --> 00:25:46,510 ilagay ang lahat ng mga libro sa loob ng isang variable. 471 00:25:46,510 --> 00:25:47,760 Tulad ng isang ito, @ aklat. 472 00:25:47,760 --> 00:25:50,200 473 00:25:50,200 --> 00:25:54,800 >> At ito ay kailangang maging global na may ito sa bagay dahil ito ay pagpunta sa maging 474 00:25:54,800 --> 00:25:56,180 na-access sa pamamagitan ng pagtingin. 475 00:25:56,180 --> 00:26:00,000 Hindi ito ng pagpunta sa magamit sa loob ang mismong controller. 476 00:26:00,000 --> 00:26:03,160 At ito slows lamang ng impormasyon na ang view ay pagpunta sa gamitin. 477 00:26:03,160 --> 00:26:08,030 Halimbawa, ang controller sa mga pagsusuri kung ang gumagamit ay online. 478 00:26:08,030 --> 00:26:09,620 At paano nito gawin iyon? 479 00:26:09,620 --> 00:26:11,760 Ito talaga itinatanong ang mga modelo dahil ang modelo ay may 480 00:26:11,760 --> 00:26:12,890 impormasyon tungkol sa user. 481 00:26:12,890 --> 00:26:15,840 Mayroon itong talahanayan ng mga gumagamit, ang mga aklat talahanayan, iba pang mga talahanayan. 482 00:26:15,840 --> 00:26:18,560 Kaya ang controller magtatanong kung ang gumagamit ay online. 483 00:26:18,560 --> 00:26:23,760 Kung ang gumagamit ay online, ang controller humahawak ng mga bagay tulad ng paglalagay ng cookie, 484 00:26:23,760 --> 00:26:28,120 o ang isang bagay tulad na, upang ilagay ang stamp upang sabihin na ang gumagamit ay online. 485 00:26:28,120 --> 00:26:29,930 Hindi na kailangang mag-log in muli. 486 00:26:29,930 --> 00:26:34,080 >> At ito ang nangyayari upang i-load sa isang variable na tinatawag na gumagamit, halimbawa, na ang 487 00:26:34,080 --> 00:26:35,130 pagtingin ay maaaring gumamit ng. 488 00:26:35,130 --> 00:26:42,375 At ang mga pagtingin ay maaaring maglagay ng isang bagay dito, halimbawa, maligayang pagdating user.name. 489 00:26:42,375 --> 00:26:46,040 Kaya ito ay pagpunta sa sabihin, welcome John, welcome James - 490 00:26:46,040 --> 00:26:47,390 ang isang bagay tulad na, i-right? 491 00:26:47,390 --> 00:26:50,380 Kaya lahat ng mga variable na ginamit sa tanaw ay pagpunta sa-load sa 492 00:26:50,380 --> 00:26:54,190 controller at pupunta upang maging na nakuha up mula sa modelo. 493 00:26:54,190 --> 00:26:58,310 494 00:26:58,310 --> 00:27:00,555 >> Ito ang halimbawa ng isang controller. 495 00:27:00,555 --> 00:27:03,140 496 00:27:03,140 --> 00:27:08,640 Kaya mayroon kami, talaga, ang bawat isa - 497 00:27:08,640 --> 00:27:10,010 tinatawag naming mga bagay na aksyon. 498 00:27:10,010 --> 00:27:11,570 Kaya index ay isang pagkilos. 499 00:27:11,570 --> 00:27:13,820 Ito ay isang Ruby function. 500 00:27:13,820 --> 00:27:16,160 Ito ay isang paraan ng Ruby sa doon. 501 00:27:16,160 --> 00:27:19,350 Ngunit para sa mga tawag controller mga bagay na aksyon. 502 00:27:19,350 --> 00:27:24,830 At ang bawat pagkilos ay may kaugnayan sa isang ruta. 503 00:27:24,830 --> 00:27:29,350 Kaya dito sa rutang ito, halimbawa, ay isang get statement / libro. 504 00:27:29,350 --> 00:27:37,500 Kaya kung pupunta ka sa harvard2017.com/books, kung ano ang nangyayari sa mangyari ay ang code na ito ay 505 00:27:37,500 --> 00:27:40,630 pagpunta sa tatawagin. 506 00:27:40,630 --> 00:27:44,290 >> At doon ay isang file - 507 00:27:44,290 --> 00:27:46,010 hayaan mo akong buksan ang real mabilis. 508 00:27:46,010 --> 00:27:51,310 509 00:27:51,310 --> 00:27:55,386 Mayroong isang file na tinatawag na raw file. 510 00:27:55,386 --> 00:27:57,920 Hindi ito ang ipapalabas. 511 00:27:57,920 --> 00:28:02,330 Kaya mayroong isang file na tinatawag na raw file na talaga tumutugma - 512 00:28:02,330 --> 00:28:03,580 oh, ngayon ito ang ipapalabas. 513 00:28:03,580 --> 00:28:15,900 514 00:28:15,900 --> 00:28:17,550 Dito, mga ruta. 515 00:28:17,550 --> 00:28:24,440 Kaya tumutugma talaga pilay, activation / bagong halimbawa, upang 516 00:28:24,440 --> 00:28:27,810 isang bagay sa controller. 517 00:28:27,810 --> 00:28:31,580 Kaya mayroong ito controller na tinatawag na activation controller, ngunit dito, 518 00:28:31,580 --> 00:28:32,790 mayroon kaming ang mga aklat, halimbawa. 519 00:28:32,790 --> 00:28:33,740 Kaya tumutugma - 520 00:28:33,740 --> 00:28:39,040 mga aklat / mga bagong, upang ang controller mga libro, mga aksyon bago. 521 00:28:39,040 --> 00:28:41,290 Kaya talaga, napaka-tuwiran bagay. 522 00:28:41,290 --> 00:28:43,970 523 00:28:43,970 --> 00:28:48,770 >> At dito, kung mayroon kang upang makakuha / libro, iwa ang ID ng mga aklat, iwa bago, 524 00:28:48,770 --> 00:28:53,250 ka pagpunta upang pumunta sa na Ruby paraan down na doon. 525 00:28:53,250 --> 00:28:58,210 Kaya dito, kung ano ang ginagawa ito index ay naglo-load lang ng log book. 526 00:28:58,210 --> 00:28:59,570 Iyan ay isang bagay na - 527 00:28:59,570 --> 00:29:02,160 Mag-log ang lahat ng mga libro sa isang log. 528 00:29:02,160 --> 00:29:03,050 At-uri-uriin ang lahat ng ito. 529 00:29:03,050 --> 00:29:05,870 Kaya ito ng pagpunta upang bumalik lahat ng mga pinagsunod-sunod mga libro. 530 00:29:05,870 --> 00:29:07,940 Ito ay, muli, sa database. 531 00:29:07,940 --> 00:29:09,570 Kaya ito ay isang paraan ng modelo. 532 00:29:09,570 --> 00:29:12,440 Nakita mo ang paraan na ito sa pagiging nilikha sa modelo. 533 00:29:12,440 --> 00:29:16,170 Ngayon ito ay naglo-load lang lahat ng mga libro at paglalagay na sa isang variable na 534 00:29:16,170 --> 00:29:17,490 maaari itong makita ng mga view. 535 00:29:17,490 --> 00:29:20,680 >> Dahil hindi ka maaari, sa gitna ng iyong HTML code, hindi ka maaaring tumawag 536 00:29:20,680 --> 00:29:23,940 isang bagay nang direkta mula sa modelo, dahil sa dalawang kadahilanan. 537 00:29:23,940 --> 00:29:28,260 Una, para sa mga kadahilanang pang-seguridad dahil hindi ito talagang kawili-wiling upang maging 538 00:29:28,260 --> 00:29:32,920 naglo-load ng impormasyon nang direkta sa loob bawat HTML na sa database. 539 00:29:32,920 --> 00:29:36,030 At pangalawa, upang mapanatili ang iyong code talaga inorganisa. 540 00:29:36,030 --> 00:29:38,800 Kaya't ihiwalay eksakto ang iba't-ibang bahagi. 541 00:29:38,800 --> 00:29:42,830 Kaya BookLog.sorted_all, ito sa database at ito ay pagpunta sa ilagay sa 542 00:29:42,830 --> 00:29:44,290 isang variable @ aklat. 543 00:29:44,290 --> 00:29:47,695 At ngayon ito na variable ay naa-access sa loob ng iyong HTML code. 544 00:29:47,695 --> 00:29:54,610 Kaya maaari mo lamang ilagay ang lahat ng mga libro Mayroon bang tulad lang ng ginawa namin, dito mismo. 545 00:29:54,610 --> 00:29:57,760 Ito ang variable. 546 00:29:57,760 --> 00:30:04,730 >> At pagbisita respond_to gawin | format |, ito ay lamang ng isang uri ng Ruby syntax para sa 547 00:30:04,730 --> 00:30:08,140 kung ang gumagamit ay humihingi sa akin para sa HTML code, pupuntahan ko 548 00:30:08,140 --> 00:30:09,340 tumugon kasama ang HTML code. 549 00:30:09,340 --> 00:30:15,500 Kung nagtatanong ng user ako gamit ang JSON code, na kung saan ay isang bagay na gumagamit ng mga web app 550 00:30:15,500 --> 00:30:20,780 upang makipag-ugnayan sa pagitan ng kanilang sarili, ang mga ito karaniwang gamitin JSON o ilang iba pang 551 00:30:20,780 --> 00:30:23,120 uri ng bagay. 552 00:30:23,120 --> 00:30:25,850 Kaya lamang ay tumutugon ito gamit ang mga dalawang magkaibang mga format. 553 00:30:25,850 --> 00:30:31,720 Ngunit para sa isang normal na user, ito Hindi kailangang maging dito. 554 00:30:31,720 --> 00:30:34,060 Gusto mong tumugon lamang sa HTML, at iyon ang fine. 555 00:30:34,060 --> 00:30:36,220 Kaya huwag mag-alala talaga na magkano ang tungkol dito. 556 00:30:36,220 --> 00:30:39,510 Ito ay ang tanging linya ng code sa aming kontrol na bilang ito ay naglo-load mula sa HTML 557 00:30:39,510 --> 00:30:42,630 database, paglalagay sa isang bagay na naa-access sa pamamagitan ng pagtingin. 558 00:30:42,630 --> 00:30:49,870 >> At pagkatapos ay bago, kaya dito Lumilikha ako ng mga libro. 559 00:30:49,870 --> 00:30:55,490 Ngunit upang lumikha ng mga aklat, Kailangan ko ng mag-aaral dahil kailangan kong malaman ang mag-aaral 560 00:30:55,490 --> 00:30:58,490 na kung saan ang mga aklat na ito nabibilang sa, i-right. 561 00:30:58,490 --> 00:31:00,780 Kaya @ mag-aaral = Mag-aaral. 562 00:31:00,780 --> 00:31:06,500 Mag-aaral, muli, ipinapadala namin na nagsisimula sa isang malaking S ay ang mag-aaral na modelo. 563 00:31:06,500 --> 00:31:09,380 OK, kaya ito ay ang mag-aaral na modelo, ito ay ang log ng modelo aklat. 564 00:31:09,380 --> 00:31:15,150 Student.find, kaya ako pagpunta sa makahanap ng isang mag-aaral gamit ang mga parameter ng ID. 565 00:31:15,150 --> 00:31:19,160 params.id, ito ay makakuha lamang sa akin ang halaga ng ang ID na ito na pumasa sa - 566 00:31:19,160 --> 00:31:23,410 at ang URL. 567 00:31:23,410 --> 00:31:25,440 >> Pagpunta lamang upang maghanap ng mga mag-aaral na iyon. 568 00:31:25,440 --> 00:31:28,420 At una sa lahat, kami ay pagpunta sa suriin kung ang mag-aaral ay may ilang mga kanta 569 00:31:28,420 --> 00:31:29,910 at blah, blah, blah. 570 00:31:29,910 --> 00:31:35,570 At ito na humahawak sa kaso kapag ang mag-aaral ang 571 00:31:35,570 --> 00:31:38,340 ay hindi umiiral, halimbawa. 572 00:31:38,340 --> 00:31:44,450 At pagkatapos ay, tao, kaming tumutugon lamang upang ang parehong bagay gamit ang HTML. 573 00:31:44,450 --> 00:31:47,570 At pagkatapos ay maaari naming ipaalam ang gumagamit gumawa ng kanilang mga kanta. 574 00:31:47,570 --> 00:31:49,320 Kaya ito ay bago. 575 00:31:49,320 --> 00:31:52,580 Bagong ay karaniwang ginagamit para sa, sabihin lumikha ng user ang isang bagay. 576 00:31:52,580 --> 00:31:56,440 At pagkatapos ay mayroong mga lumikha ng pagkilos na karaniwang ginagamit para sa - 577 00:31:56,440 --> 00:31:59,040 talagang ilagay ang mga kanta sa database o ang isang bagay tulad na. 578 00:31:59,040 --> 00:32:01,770 Ngunit sa sandaling simulan mong gamitin ang daang-bakal, mga bagay ay pagpunta sa maging 579 00:32:01,770 --> 00:32:05,110 magkano, magkano ang mas malinaw. 580 00:32:05,110 --> 00:32:07,910 OK, palamig. 581 00:32:07,910 --> 00:32:09,715 Ang anumang mga katanungan sa ngayon? 582 00:32:09,715 --> 00:32:15,240 Gumagana ba ito ang may katuturan na may controllers, mga modelo, mga patlang - 583 00:32:15,240 --> 00:32:17,860 oo? 584 00:32:17,860 --> 00:32:20,980 >> Muli sa iyong application daang-bakal - 585 00:32:20,980 --> 00:32:24,700 kaya lahat ng na maaaring matagpuan sa dito. 586 00:32:24,700 --> 00:32:30,430 Kaya mayroon kang app, controllers, mga ay ang lahat ng aking mga controllers. 587 00:32:30,430 --> 00:32:32,880 Kaya halimbawa, kontrolin ang mga libro. 588 00:32:32,880 --> 00:32:35,490 Iyon ang isa Nakita namin lamang. 589 00:32:35,490 --> 00:32:36,400 At pagkatapos tanawin. 590 00:32:36,400 --> 00:32:39,750 At bawat controller ay may nauugnay view, tama? 591 00:32:39,750 --> 00:32:43,750 Kaya awtomatikong kapag kang tumawag ito index dito, halimbawa, o kapag mo 592 00:32:43,750 --> 00:32:49,930 itawag sa libro bago, pagkatapos ay ang view, mga libro, mga bagong ay pagpunta sa tatawagin. 593 00:32:49,930 --> 00:32:53,300 >> Kaya daang-bakal gumagana ang lahat ng bagay Awtomatikong para sa iyo. 594 00:32:53,300 --> 00:32:59,420 Kaya bawat controller ay isang nauugnay na tingnan at ang lahat ng mga modelo ng - 595 00:32:59,420 --> 00:33:01,970 dito Mayroon akong isa, dalawa, tatlo, apat, limang mga modelo. 596 00:33:01,970 --> 00:33:05,800 Ngunit ito ay isang modelo ng mag-aaral, kaya mga ay ang mga variable na ang lahat ng 597 00:33:05,800 --> 00:33:08,620 mga mag-aaral ay may - lokalisasyon, petsa ng kapanganakan. 598 00:33:08,620 --> 00:33:11,270 Mga mag-aaral Medyo nang higit pa kumplikado dahil ang bawat mag-aaral ay may 599 00:33:11,270 --> 00:33:15,400 higit pang iba't ibang paraan na nauugnay dito. 600 00:33:15,400 --> 00:33:18,770 Ngunit ito ay lamang sa paghawak ng mga mesa na nagkaroon ng lahat ng mga 601 00:33:18,770 --> 00:33:21,980 mga mag-aaral sa database. 602 00:33:21,980 --> 00:33:24,300 >> At, OK, pag-install ng daang-bakal. 603 00:33:24,300 --> 00:33:27,710 Pag-install ng daang-bakal, upang maging tapat, ay hindi ang pinakasimpleng bagay. 604 00:33:27,710 --> 00:33:32,980 Ngunit sa sandaling makuha mo nakalipas na ang lahat ng bagay, ay masyadong, napakadaling. 605 00:33:32,980 --> 00:33:38,810 Kaya pag-install ng daang-bakal, mo pumunta lamang sa website, rubyandrails.org / download 606 00:33:38,810 --> 00:33:41,510 at sundin ang kanilang mga tagubilin doon. 607 00:33:41,510 --> 00:33:42,700 I-download ang lahat. 608 00:33:42,700 --> 00:33:46,600 At maaari mong gawin na alinman sa Appliance, sa CS50 Appliance, sa 609 00:33:46,600 --> 00:33:51,120 Windows, sa Mac, o anumang mga operating sistema na iyong gusto. 610 00:33:51,120 --> 00:33:52,460 Ruby sa daang-bakal ay tumatakbo sa lahat ng bagay. 611 00:33:52,460 --> 00:33:56,680 >> Logro ay mayroon ka nang na-install ang Ruby kung mayroon kang isang Mac o - 612 00:33:56,680 --> 00:33:58,130 sa mga kasangkapan sa tingin ko ay Ruby - 613 00:33:58,130 --> 00:34:00,940 Hindi ako sigurado. 614 00:34:00,940 --> 00:34:02,440 At pagkatapos ay mayroon kang naka-install na lang ito. 615 00:34:02,440 --> 00:34:07,190 At kung gusto mong lumikha ng isang bagong web application, mo lamang 616 00:34:07,190 --> 00:34:10,270 gawin daang-bakal, bago, blog. 617 00:34:10,270 --> 00:34:12,429 Daang-bakal, bago - 618 00:34:12,429 --> 00:34:13,310 Hindi ko alam kung - 619 00:34:13,310 --> 00:34:15,050 ang pangalan ng iyong website. 620 00:34:15,050 --> 00:34:16,380 At ito ay simpleng na. 621 00:34:16,380 --> 00:34:19,060 >> Ito ay pagpunta upang lumikha ng lahat ng mga mga file ko pa lang ay nagpakita sa iyo. 622 00:34:19,060 --> 00:34:22,730 Ngunit ang modelo, ang view, at ang controller ay hindi pagpunta sa maging 623 00:34:22,730 --> 00:34:24,330 pa populated. 624 00:34:24,330 --> 00:34:28,710 Lamang ka ng pagpunta sa may upang pumunta doon panahanan ng mga tao at tatlong mga folder na iyon. 625 00:34:28,710 --> 00:34:32,840 Kaya logro ay, nais mong lumikha ng isang modelo, halimbawa, ipatupad isa 626 00:34:32,840 --> 00:34:33,780 gawing modelo ang unang. 627 00:34:33,780 --> 00:34:40,440 Kaya ulit, palaging sinusubukan upang kumagat mas maliit mga piraso ng isang problema sa isang pagkakataon. 628 00:34:40,440 --> 00:34:42,659 >> At pagkatapos ay sabihin nating, lumikha ng isang modelo para sa iyong mga user. 629 00:34:42,659 --> 00:34:44,370 Iyon ang unang bagay kung mayroon kang mga gumagamit. 630 00:34:44,370 --> 00:34:48,440 Pagkatapos Gusto kong lumikha ng isang modelo tulad lang namin ay nagpakita dito. 631 00:34:48,440 --> 00:34:58,470 Daang-bakal, bumuo, modelo, user, at pagkatapos ay mga email string - mayroon kaming na dito. 632 00:34:58,470 --> 00:35:01,200 At lumikha lamang na modelo, oo. 633 00:35:01,200 --> 00:35:05,030 Daang-bakal makabuo ng modelo ng email User: string password: string. 634 00:35:05,030 --> 00:35:09,650 >> At pagkatapos mong lumikha ng isang controller na deal sa gumagamit. 635 00:35:09,650 --> 00:35:12,790 At maaari kang lumikha ng mga bagong gumagamit at gawin ang mga uri ng mga bagay. 636 00:35:12,790 --> 00:35:18,280 At pagkatapos ay maaari mong magpatuloy sa paglikha ang natitirang bahagi ng iyong website. 637 00:35:18,280 --> 00:35:22,470 Mahusay, mga tanong? 638 00:35:22,470 --> 00:35:23,230 Oo. 639 00:35:23,230 --> 00:35:24,480 >> Madla: [hindi marinig] 640 00:35:24,480 --> 00:35:27,430 641 00:35:27,430 --> 00:35:29,910 >> Gabriel Guimarães: Oo, oo, ikaw Talagang mayroon upang pumunta sa view. 642 00:35:29,910 --> 00:35:31,290 Iyan ay isang napakagandang tanong. 643 00:35:31,290 --> 00:35:36,410 Kaya ang view ay kung ano talaga naglalaman ng iyong HTML. 644 00:35:36,410 --> 00:35:39,240 Kaya kung ano ang mga gumagamit ay pumunta upang makita. 645 00:35:39,240 --> 00:35:46,690 Muli, dito, ito ay isang halimbawa ng isang view. 646 00:35:46,690 --> 00:35:52,040 Mayroon itong HTML code at Ruby code sa parehong oras. 647 00:35:52,040 --> 00:35:56,010 Kaya ang Ruby code ay doon upang ilagay ang mga bagay mula sa database, halimbawa, 648 00:35:56,010 --> 00:35:59,150 na na-load sa controller. 649 00:35:59,150 --> 00:36:04,240 Kaya variable na @ aklat, halimbawa, mayroon ng lahat ng mga libro at ang talahanayan 650 00:36:04,240 --> 00:36:05,340 aklat na ito sa database. 651 00:36:05,340 --> 00:36:08,680 Ginawa namin siguraduhin na ito ay nagkaroon ng sa controller. 652 00:36:08,680 --> 00:36:10,250 >> At ang mga pagtingin - 653 00:36:10,250 --> 00:36:15,900 ang bawat isa sa mga pahina ng off ang iyong website ay pagpunta sa magkaroon ng isa nauugnay view. 654 00:36:15,900 --> 00:36:21,762 Kaya kung pumunta ka sa home page, ang napaka unang pahina, harvard2017.com. 655 00:36:21,762 --> 00:36:23,490 Na nagpapakita ng isang pahina. 656 00:36:23,490 --> 00:36:26,760 At pagkatapos ay pumunta ka sa iwa profile. 657 00:36:26,760 --> 00:36:30,150 Iyon ang nangyayari upang pumunta sa isang controller na ang isang profile ng controller. 658 00:36:30,150 --> 00:36:34,620 At ang profile controller ay pagpunta upang mabigyan ka ng view ng profile. 659 00:36:34,620 --> 00:36:37,590 At sa view ng profile ng pagpunta sa tumingin medyo na tulad nito, ngunit ito ay pagpunta sa 660 00:36:37,590 --> 00:36:41,910 magkaroon ng impormasyon tungkol sa gumagamit, at hindi tungkol sa mga libro. 661 00:36:41,910 --> 00:36:46,840 >> Kaya HTML code at CSS at mga mga bagay na nakita ng isang gumagamit 662 00:36:46,840 --> 00:36:49,680 may Ruby code - 663 00:36:49,680 --> 00:36:52,505 na aktwal na mga kopya na bagay mula sa database. 664 00:36:52,505 --> 00:36:54,520 Iyan ba mas malinaw? 665 00:36:54,520 --> 00:36:55,080 Umaasa ako. 666 00:36:55,080 --> 00:36:58,066 >> Madla: Ang HTML code ay ginagamit upang talagang gawin ang mga website na ang 667 00:36:58,066 --> 00:37:02,470 nakikita ng gumagamit, ngunit ang Ruby code ay kung bakit ang website ng trabaho? 668 00:37:02,470 --> 00:37:06,500 >> Gabriel Guimarães: Ang Ruby code maipo-convert sa HTML. 669 00:37:06,500 --> 00:37:09,420 Kaya kung ano ang nakukuha ng user ay lamang ng HTML, OK? 670 00:37:09,420 --> 00:37:10,900 Ito ay lamang ng HTML. 671 00:37:10,900 --> 00:37:18,740 Book.title na ito ay pagpunta upang i-convert sa ang halaga ng book.title sa HTML, OK. 672 00:37:18,740 --> 00:37:23,080 Kaya ito ay ang lahat sa server, at sa gayon Depende ito sa kung anong mga libro ang naroon 673 00:37:23,080 --> 00:37:24,410 sa server ngayon. 674 00:37:24,410 --> 00:37:32,930 Ngunit ano ang server ng ginagawa agad kahulugan lamang ang HTML code, OK. 675 00:37:32,930 --> 00:37:36,720 >> Ngunit ang view ay nagbibigay lamang ang layout ng kung ano ang pagpunta sa HTML upang magmukhang 676 00:37:36,720 --> 00:37:39,530 at kung ano ang mga variable ay pagpunta sa maging. 677 00:37:39,530 --> 00:37:42,170 Ang ganitong uri ng isang print out, OK. 678 00:37:42,170 --> 00:37:44,360 Yaong mga bagay na may mga talaga i-print out. 679 00:37:44,360 --> 00:37:47,430 Ang mga ito ay pagpunta sa i-print ang mga variable, OK. 680 00:37:47,430 --> 00:37:49,850 Kaya kung ano ay lamang ng HTML, mga - 681 00:37:49,850 --> 00:37:51,390 may-akda, pamagat, paglalarawan. 682 00:37:51,390 --> 00:37:53,540 Iyon ay static na nilalaman. 683 00:37:53,540 --> 00:37:54,520 Na hindi pagpunta upang baguhin. 684 00:37:54,520 --> 00:37:56,700 Iyon lamang ang simpleng HTML code. 685 00:37:56,700 --> 00:37:59,080 Iyon ang mga pagkontra-print para sa mga variable - 686 00:37:59,080 --> 00:38:00,330 mga bagay na nakasalalay. 687 00:38:00,330 --> 00:38:02,350 688 00:38:02,350 --> 00:38:03,600 Mahusay, higit pang mga tanong? 689 00:38:03,600 --> 00:38:12,120 690 00:38:12,120 --> 00:38:12,600 Magandang? 691 00:38:12,600 --> 00:38:13,080 Oo. 692 00:38:13,080 --> 00:38:15,720 >> Madla: Sa tingin ko ang iyong ginagawa lahat ang pag-edit sa isang iba't ibang mga teksto 693 00:38:15,720 --> 00:38:16,920 pag-edit ng programa. 694 00:38:16,920 --> 00:38:19,520 Dapat ring i-download namin iyon? 695 00:38:19,520 --> 00:38:24,250 >> Gabriel Guimarães: Oo, gusto ko ito editor ng teksto na tinatawag TextMate. 696 00:38:24,250 --> 00:38:24,990 At ito ay talagang mahusay. 697 00:38:24,990 --> 00:38:26,980 Mahusay Ito ay naaayon sa Ruby. 698 00:38:26,980 --> 00:38:29,270 Ito ang mga kulay bagay napaka makinis. 699 00:38:29,270 --> 00:38:34,770 Kaya TextMate, T-E-X-T. Pupunta ako upang ilagay iyon, kumapit - 700 00:38:34,770 --> 00:38:42,880 701 00:38:42,880 --> 00:38:45,720 >> Ibig kong sabihin maaari mong gamitin ang gedit o anumang bagay na gusto mo. 702 00:38:45,720 --> 00:38:49,970 Ngunit ito ay tiyak para sa Mac, at ito ay talagang kapong baka dahil naglalagay nito ang lahat ng 703 00:38:49,970 --> 00:38:51,000 ang iyong mga file down na doon. 704 00:38:51,000 --> 00:38:53,620 At sa Ruby sa daang-bakal, kailangan mo upang magpalipat-lipat sa mga file ng maraming. 705 00:38:53,620 --> 00:38:55,890 Kaya maraming, maraming mga file lamang pumunta mula sa isang file, tumalon sa 706 00:38:55,890 --> 00:38:57,120 isang file o sa iba pa. 707 00:38:57,120 --> 00:39:02,000 Kaya TextMate ay isang napakahusay na isa, ngunit maraming out doon. 708 00:39:02,000 --> 00:39:03,250 Higit pang mga tanong? 709 00:39:03,250 --> 00:39:08,680 710 00:39:08,680 --> 00:39:09,870 OK, yes? 711 00:39:09,870 --> 00:39:12,825 >> Madla: Mayroon bang isang mobile-unlad sa pamamagitan ng Ruby sa daang-bakal? 712 00:39:12,825 --> 00:39:15,640 713 00:39:15,640 --> 00:39:17,050 >> Gabriel Guimarães: na hindi ko na Narinig ng mga bagay. 714 00:39:17,050 --> 00:39:19,550 Hindi ko pa ginamit ang mga ito. 715 00:39:19,550 --> 00:39:21,570 Maaari kang magsaliksik ng higit sa na. 716 00:39:21,570 --> 00:39:24,740 Hindi ako sigurado kung mayroong anumang magandang bagay out doon. 717 00:39:24,740 --> 00:39:29,980 718 00:39:29,980 --> 00:39:31,030 OK, yes? 719 00:39:31,030 --> 00:39:32,280 >> Madla: [hindi marinig] 720 00:39:32,280 --> 00:39:38,340 721 00:39:38,340 --> 00:39:40,550 >> Gabriel Guimarães: Di daang-bakal, marahil Ruby array. 722 00:39:40,550 --> 00:39:44,270 723 00:39:44,270 --> 00:39:49,080 Buksan up ng isang terminal na window at uri, "Ruby". 724 00:39:49,080 --> 00:39:52,030 Oo, marahil, at pagkatapos ay sa iyo mayroon lamang i-install ang daang-bakal. 725 00:39:52,030 --> 00:39:57,050 Ngunit kung ikaw ay pagpunta upang i-install ang bagong Daang-bakal 4.0, na kung saan ko lubos na inirerekomenda, 726 00:39:57,050 --> 00:40:02,870 dapat mong i-download Ruby 2.0. 727 00:40:02,870 --> 00:40:04,530 Iyon ay masyadong ang bago. 728 00:40:04,530 --> 00:40:09,530 At ang bagong daang-bakal 4.0 ay may isang bagay talagang cool na na 729 00:40:09,530 --> 00:40:11,260 ginagawa nito upang ang mga asset. 730 00:40:11,260 --> 00:40:12,810 Ito humahawak ng mga ari-arian. 731 00:40:12,810 --> 00:40:18,860 Mga asset na muli ang mga imahe, CSS file, at mga file ng JavaScript. 732 00:40:18,860 --> 00:40:24,060 Kaya isa talaga kapong baka bagay na Ruby sa Daang-bakal ay para sa iyo ay sa lahat ng mga CSS 733 00:40:24,060 --> 00:40:26,980 mga file na mayroon ka at ang lahat ng bagay - 734 00:40:26,980 --> 00:40:32,420 Bundle lang ito ang lahat ng bagay up sa isa malaking file, na walang mga puwang o anumang bagay, 735 00:40:32,420 --> 00:40:40,120 upang i-minimize ang oras Kailangang gumagamit na i- download na code mula sa iyong server. 736 00:40:40,120 --> 00:40:47,780 >> Kaya kapag nakita mo sa iyong computer, ito ay pagpunta sa mayroon tulad ng 15 CSS file. 737 00:40:47,780 --> 00:40:49,520 O kaya naman marami, maraming iba't ibang mga CSS file. 738 00:40:49,520 --> 00:40:54,890 Ngunit sa pagtatapos ng araw, kung ano ang daang-bakal Awtomatikong ang para sa iyo ay ito nilalagay 739 00:40:54,890 --> 00:41:00,760 ang lahat ng bagay nang magkakasama sa isang malaking file kaya na minimizes nito ang oras na binanggit. 740 00:41:00,760 --> 00:41:02,630 Iyan ay talagang cool. 741 00:41:02,630 --> 00:41:02,940 Oo? 742 00:41:02,940 --> 00:41:04,190 >> Madla: [hindi marinig] 743 00:41:04,190 --> 00:41:13,910 744 00:41:13,910 --> 00:41:14,440 >> Gabriel Guimarães: Mismong. 745 00:41:14,440 --> 00:41:16,230 Kaya, ang pagsasama ng Google Maps. 746 00:41:16,230 --> 00:41:20,200 Yan ang JavaScript API mula sa Google. 747 00:41:20,200 --> 00:41:23,750 Kaya lang nagpunta ako sa website ng Google. 748 00:41:23,750 --> 00:41:29,950 Ang mga ito ay ang Google Maps API at ako download ang code at integrated na ito 749 00:41:29,950 --> 00:41:31,610 sa aking view. 750 00:41:31,610 --> 00:41:35,490 Kaya kung ano ang aking kailangan upang gawin doon ay kailangan ko upang makuha ang 751 00:41:35,490 --> 00:41:37,310 mga lokasyon mula sa database. 752 00:41:37,310 --> 00:41:38,990 Iyon ay tapos na sa controller. 753 00:41:38,990 --> 00:41:40,950 Kaya pinuntahan ko ang controller - 754 00:41:40,950 --> 00:41:42,350 kung saan ang controller. 755 00:41:42,350 --> 00:41:44,330 Controller Ang mukhang ito. 756 00:41:44,330 --> 00:41:48,660 Nakuha ko ang lahat ng mga lokasyon ng mga mga mag-aaral, ilagay ang lahat ng iyon sa isang malaking 757 00:41:48,660 --> 00:41:52,060 variable, isang malaking listahan, na mayroon ng lahat ng mga lokasyon. 758 00:41:52,060 --> 00:41:55,340 >> At sa view, dahil ang JavaScript API ay isang bagay sa 759 00:41:55,340 --> 00:41:55,800 tingnan, i-right? 760 00:41:55,800 --> 00:42:00,440 Dahil ang JavaScript ay tumatakbo sa loob ng iyong HTML code, ito ay pagpunta upang ipadala sa 761 00:42:00,440 --> 00:42:01,710 machine ng user. 762 00:42:01,710 --> 00:42:09,310 At sa view, load ko ang lahat ng na impormasyon sa Google API. 763 00:42:09,310 --> 00:42:12,080 At ginawa nito ang lahat ng iyon para sa sa akin, na kung saan ay talagang cool. 764 00:42:12,080 --> 00:42:16,240 Ngunit kung nais mong gamitin ang mga bagay sa back-end, at ito ay tulad ng isang library, para sa 765 00:42:16,240 --> 00:42:18,720 Halimbawa, muli - 766 00:42:18,720 --> 00:42:20,140 ang integration sa Facebook. 767 00:42:20,140 --> 00:42:24,060 Iyan ay isang bagay na marami, marami, maraming apps ginagamit ngayong mga araw na ito. 768 00:42:24,060 --> 00:42:27,300 >> Kaya mayroon ang iyong pagsasama sa Facebook dahil ito ay kaya lubhang mas madaling lamang 769 00:42:27,300 --> 00:42:30,450 mag-log in gamit ang Facebook kaysa sa lumikha isang account at blah, blah, blah. 770 00:42:30,450 --> 00:42:35,120 Pagkatapos ay gamitin mo lang ang isang hiyas at ito ay bilang simpleng bilang ng pagpunta sa iyong hiyas file. 771 00:42:35,120 --> 00:42:39,350 Hiyas file ay isang file na tinatawag na perlas file sa ang direktoryo ng pinagmulan ng iyong Ruby sa 772 00:42:39,350 --> 00:42:40,370 Daang-bakal proyekto. 773 00:42:40,370 --> 00:42:43,700 Pumunta lamang doon at magdagdag ng mga bagong hiyas. 774 00:42:43,700 --> 00:42:45,300 At kang tumingin ito up sa Google. 775 00:42:45,300 --> 00:42:46,520 Maraming, maraming, maraming mga hiyas. 776 00:42:46,520 --> 00:42:51,070 May isang partikular na gumagana ito para sa pagsasama sa Facebook. 777 00:42:51,070 --> 00:42:54,660 Hindi ako sigurado kung ano ang pangalan ng ito. 778 00:42:54,660 --> 00:42:56,680 Google lang ito at ikaw ay pagpunta upang hanapin ito. 779 00:42:56,680 --> 00:42:57,930 OK, higit pang mga tanong? 780 00:42:57,930 --> 00:43:01,110 781 00:43:01,110 --> 00:43:03,280 Kahanga-hanga, salamat sa iyo para sa darating na. 782 00:43:03,280 --> 00:43:09,227