1 00:00:00,000 --> 00:00:08,560 2 00:00:08,560 --> 00:00:10,410 >> GABRIEL GUIMARAES: Questo è CS50. 3 00:00:10,410 --> 00:00:14,740 Benvenuti a stupefacenti Web Apps con Ruby on Rails. 4 00:00:14,740 --> 00:00:19,700 Quindi, per chiunque sia interessato a web sviluppo e preparazione di siti web, web 5 00:00:19,700 --> 00:00:26,510 applicazioni, Ruby on Rails è questo strumento incredibile che Twitter, GitHub, 6 00:00:26,510 --> 00:00:31,470 Groupon, e ogni sorta di veramente bello, e grande, le applicazioni web stanno utilizzando in 7 00:00:31,470 --> 00:00:33,080 degli ultimi anni. 8 00:00:33,080 --> 00:00:37,190 Ed è davvero, davvero cool caratteristica, un freddo strumento, 9 00:00:37,190 --> 00:00:39,290 perché è nuovo. 10 00:00:39,290 --> 00:00:43,830 Così ha tutto il nuovo e potente tecnologie integrate nelle 11 00:00:43,830 --> 00:00:49,050 framework che consente di affrontare con ogni sorta di cose incredibili. 12 00:00:49,050 --> 00:00:50,970 >> Ma che cos'è un quadro? 13 00:00:50,970 --> 00:00:55,700 Quindi un quadro è sostanzialmente qualcosa che crea - 14 00:00:55,700 --> 00:00:59,680 quando si avvia un sito web, se hai iniziato da zero, come si apre 15 00:00:59,680 --> 00:01:04,530 Gedit lì, e si vuole codificare tutto del codice HTML e il codice di tutti i tuoi 16 00:01:04,530 --> 00:01:08,130 PHP, tutto il vostro CSS, tutto da zero - 17 00:01:08,130 --> 00:01:09,690 questo è solo sarà un sacco di lavoro. 18 00:01:09,690 --> 00:01:13,940 E un quadro ti dà letteralmente metà del sito già fatto. 19 00:01:13,940 --> 00:01:18,070 Quindi si inizia con la metà di un sito web che ha tutto quello che c'è per voi. 20 00:01:18,070 --> 00:01:22,690 Come le connessioni al database, e tutti tipi di cose che si devono preoccuparsi 21 00:01:22,690 --> 00:01:25,040 merito se si sta facendo da zero, non dovete preoccuparvi di quelli 22 00:01:25,040 --> 00:01:26,480 dettagli di basso livello. 23 00:01:26,480 --> 00:01:32,360 >> Ma oggi stiamo andando ad esportare una delle i siti che la matricola del 24 00:01:32,360 --> 00:01:34,740 classe del 2017 sono probabilmente familiarità. 25 00:01:34,740 --> 00:01:40,170 Quindi questo sito è il sito che ho ha fatto per la nostra classe durante l'estate. 26 00:01:40,170 --> 00:01:46,500 Era un sito web dove gli studenti di la classe del 2017 potrebbe accedere e 27 00:01:46,500 --> 00:01:47,480 interagire tra loro. 28 00:01:47,480 --> 00:01:49,610 E poi questa è una mappa - 29 00:01:49,610 --> 00:01:51,210 tutti, dove le persone sono. 30 00:01:51,210 --> 00:01:56,970 E abbiamo avuto un gioco libro, un gioco di canzoni dove abbiamo visto le canzoni delle persone e 31 00:01:56,970 --> 00:01:57,970 Libri delle persone. 32 00:01:57,970 --> 00:02:00,480 Quello che piace leggere, cosa a loro piace ascoltare. 33 00:02:00,480 --> 00:02:06,830 E la parte più interessante è che letteralmente mi ci sono voluti tre ore 34 00:02:06,830 --> 00:02:07,840 codificare tutto. 35 00:02:07,840 --> 00:02:13,050 Perché se dovessi fare tutto da zero, come aprire gedit, è 36 00:02:13,050 --> 00:02:16,400 probabilmente hanno preso me 20, 30 ore. 37 00:02:16,400 --> 00:02:20,210 Ma con Ruby on Rails, perché tutto era già impostato per me, 38 00:02:20,210 --> 00:02:25,550 mi ci sono voluti solo tre o quattro ore, o qualcosa di simile. 39 00:02:25,550 --> 00:02:27,580 >> Così che cosa è Ruby on Rails. 40 00:02:27,580 --> 00:02:32,720 Ruby on Rails, ancora una volta come abbiamo già detto, è un quadro. 41 00:02:32,720 --> 00:02:34,800 Questa è una foto di un quadro. 42 00:02:34,800 --> 00:02:37,460 Quindi hai intenzione di iniziare a costruire una casa, avete già la metà del 43 00:02:37,460 --> 00:02:38,320 casa fatto. 44 00:02:38,320 --> 00:02:38,970 Questo è il quadro. 45 00:02:38,970 --> 00:02:40,560 E Ruby on Rails è esattamente così. 46 00:02:40,560 --> 00:02:44,440 E si dovrebbe pensare ad esso come, si inizia un sito web, si avvia il web 47 00:02:44,440 --> 00:02:48,830 applicazione, abbiamo già metà fatto lì. 48 00:02:48,830 --> 00:02:50,400 Ma prima di tutto, che cosa è Ruby? 49 00:02:50,400 --> 00:02:53,510 50 00:02:53,510 --> 00:02:58,310 Ruby on Rails usa la vista del modello regolatore, che è paradigma, che 51 00:02:58,310 --> 00:02:59,930 è davvero interessante - 52 00:02:59,930 --> 00:03:04,250 e tutte le applicazioni oggi usare qualcosa di simile. 53 00:03:04,250 --> 00:03:08,630 Questa idea di separare le cose in tre parti, il modello, la vista, e 54 00:03:08,630 --> 00:03:09,630 il controllore. 55 00:03:09,630 --> 00:03:11,950 Stiamo per parlare un po ' parleremo più avanti. 56 00:03:11,950 --> 00:03:13,400 >> In primo luogo, che cosa è Ruby? 57 00:03:13,400 --> 00:03:14,500 Quindi questo è Ruby. 58 00:03:14,500 --> 00:03:17,850 E questo è il simbolo della linguaggio chiamato Ruby. 59 00:03:17,850 --> 00:03:24,170 Ruby è uno dei newish interpretati lingue, così lo script. 60 00:03:24,170 --> 00:03:29,530 E 'una lingua che non è compilato come C. E 'compilato in fuga. 61 00:03:29,530 --> 00:03:33,220 Quindi questo è un bene, perché, proprio come PHP, per esempio, è anche interpretato, è 62 00:03:33,220 --> 00:03:33,960 non compilato. 63 00:03:33,960 --> 00:03:35,710 Questo è un bene perché il suo portatile. 64 00:03:35,710 --> 00:03:39,740 Quindi basta passare il codice da una macchina all'altra. 65 00:03:39,740 --> 00:03:44,440 Da una macchina Linux, per Windows macchina ad una macchina Mac o Apple, o 66 00:03:44,440 --> 00:03:45,240 qualcosa di simile. 67 00:03:45,240 --> 00:03:49,160 E non c'è bisogno di preoccuparsi dettagli riguardanti ciascuna delle specifiche 68 00:03:49,160 --> 00:03:49,890 sistemi operativi. 69 00:03:49,890 --> 00:03:51,330 Sta andando a lavorare ovunque. 70 00:03:51,330 --> 00:03:54,700 >> E Ruby è un linguaggio che - 71 00:03:54,700 --> 00:03:56,920 voi ragazzi ricordano probabilmente questo. 72 00:03:56,920 --> 00:04:01,440 La gente usa la funzione hash implementata in C per la tabella hash 73 00:04:01,440 --> 00:04:04,860 la settimana scorsa e aveva tutti i tipi di segmentation fault. 74 00:04:04,860 --> 00:04:12,360 E poi le cose preoccuparsi se che stringa i lì, l'ho stringa 75 00:04:12,360 --> 00:04:20,380 qui, è stato effettivamente in minuscolo o maiuscolo, o questo tipo di preoccupante 76 00:04:20,380 --> 00:04:21,410 dettagli di basso livello. 77 00:04:21,410 --> 00:04:26,180 Bene in Ruby, se si desidera implementare una tabella di hash, questo è esattamente come si 78 00:04:26,180 --> 00:04:27,100 creare una tabella hash. 79 00:04:27,100 --> 00:04:30,280 Tu dici, dizionario, questo è il nome della mia variabile, = "Hash.new". 80 00:04:30,280 --> 00:04:34,680 E poi dizionario ["pippo"], e quando sono aggiungendo foo alla mia tabella di hash, sono 81 00:04:34,680 --> 00:04:35,960 solo dicendo foo è lì. 82 00:04:35,960 --> 00:04:38,070 >> E poi se volevo controllare se foo era lì, dico solo se 83 00:04:38,070 --> 00:04:40,270 dizionario ["foo"] == true return true. 84 00:04:40,270 --> 00:04:41,560 Whoa, e questa è la vostra tabella di hash. 85 00:04:41,560 --> 00:04:44,280 Questo è l'attuazione della tabella hash in Ruby. 86 00:04:44,280 --> 00:04:50,200 Così tutti voluto che potrebbero avere usato qualcosa come Ruby per ultimo 87 00:04:50,200 --> 00:04:51,450 pset settimana, giusto? 88 00:04:51,450 --> 00:04:54,410 89 00:04:54,410 --> 00:04:59,050 Abbiamo tutta una serie di ragioni per voler per usare un linguaggio come Ruby. 90 00:04:59,050 --> 00:05:01,380 Ruby ha gemme. 91 00:05:01,380 --> 00:05:04,000 Gem è un nome per un genere della biblioteca in Ruby. 92 00:05:04,000 --> 00:05:07,490 >> Quindi tutta una serie di caratteristiche interessanti che si può avere, per esempio, se io 93 00:05:07,490 --> 00:05:09,280 voler integrare la mia domanda. 94 00:05:09,280 --> 00:05:12,470 Che Harvard 2.017 applicazioni è stato integrato a Facebook. 95 00:05:12,470 --> 00:05:15,810 Così si potrebbe accedere, via Facebook, per l'applicazione. 96 00:05:15,810 --> 00:05:19,760 Quindi, se avete intenzione di farlo, non è necessario necessario preoccuparsi di inviare alcuni 97 00:05:19,760 --> 00:05:23,760 Richiesta HTTP a Facebook, e in attesa per la risposta, e costringendo l' 98 00:05:23,760 --> 00:05:25,150 risposta, e bla, bla, bla. 99 00:05:25,150 --> 00:05:29,120 Basta scaricare la gemma che fa tutto questo per voi. 100 00:05:29,120 --> 00:05:30,750 E allora non c'è bisogno di preoccuparsi di tutto questo. 101 00:05:30,750 --> 00:05:33,670 >> E poi un sacco di aiuto on-line, naturalmente. 102 00:05:33,670 --> 00:05:37,040 Ci sono molti, molti, molti siti web che stanno per aiutarvi entrambi con 103 00:05:37,040 --> 00:05:38,880 Ruby e con Rails. 104 00:05:38,880 --> 00:05:40,530 Ed è molto divertente al codice. 105 00:05:40,530 --> 00:05:46,770 Proprio perché si può smettere di preoccuparsi in merito a questi problemi non è così divertente. 106 00:05:46,770 --> 00:05:50,690 Come se qualcosa è minuscolo o maiuscolo, e poi perché è questo 107 00:05:50,690 --> 00:05:54,500 dando un errore di segmentazione e si può veramente immergersi nel molto 108 00:05:54,500 --> 00:05:55,460 roba interessante. 109 00:05:55,460 --> 00:05:59,650 Per immergersi nei problemi davvero cool. 110 00:05:59,650 --> 00:06:02,420 >> Così Ruby è proprio come a C in un certo senso. 111 00:06:02,420 --> 00:06:05,950 Quindi non sarà che grande di un salto in realtà. 112 00:06:05,950 --> 00:06:09,470 Quindi mette, che è la nostra applicazione di stampa in Ruby. 113 00:06:09,470 --> 00:06:12,790 Penso che si potrebbe usare la stampa troppo, ma mette è quello che usa tutti. 114 00:06:12,790 --> 00:06:14,490 Quindi, solo mette "Ciao Mondo". 115 00:06:14,490 --> 00:06:21,400 Si potrebbe, o non potrebbe, avere la parentesi circonda 116 00:06:21,400 --> 00:06:23,280 "Ciao Mondo" lì. 117 00:06:23,280 --> 00:06:25,350 Si può solo scegliere se o non utilizzare questo. 118 00:06:25,350 --> 00:06:26,780 Quindi x = "1". 119 00:06:26,780 --> 00:06:29,030 Un ciclo while sembra piuttosto molto lo stesso. 120 00:06:29,030 --> 00:06:30,630 Ha poco meno di sintassi. 121 00:06:30,630 --> 00:06:32,590 E 'una specie di detergente un po'. 122 00:06:32,590 --> 00:06:37,380 E poi se x> 25 puts "Big!" e altro mette "Small ...". 123 00:06:37,380 --> 00:06:39,070 Ed è una specie di C in questo senso. 124 00:06:39,070 --> 00:06:41,630 >> Quindi, se si guarda a questo, è possibile approccio probabilmente capire 125 00:06:41,630 --> 00:06:42,890 tutto quello che sta succedendo. 126 00:06:42,890 --> 00:06:47,750 Ma è più potente. 127 00:06:47,750 --> 00:06:54,520 Più potente perché, più di questo, Si può fare cose non sono che - 128 00:06:54,520 --> 00:06:55,750 una sorta di hackage un po '. 129 00:06:55,750 --> 00:06:57,430 In C non si poteva fare in fare solo con una linea. 130 00:06:57,430 --> 00:06:58,680 Ad esempio, mette "Io sono # {x}". 131 00:06:58,680 --> 00:07:04,330 132 00:07:04,330 --> 00:07:11,100 Questo è solo sintassi per inserire il valore di x qui, e non stampare la 133 00:07:11,100 --> 00:07:12,160 carattere x. 134 00:07:12,160 --> 00:07:17,850 In C si doveva fare la percentuale d, e poi mettere la variabile x dopo l' 135 00:07:17,850 --> 00:07:19,730 la virgola qui, o qualcosa di simile. 136 00:07:19,730 --> 00:07:22,220 >> E in Ruby c'è una scorciatoia solo per farlo. 137 00:07:22,220 --> 00:07:27,830 E mette questo, se x> 3, in modo da poter mettere il se tutti su una sola riga. 138 00:07:27,830 --> 00:07:29,010 E poi una lista. 139 00:07:29,010 --> 00:07:33,320 Liste in C, come un array, deve tenere traccia di quanto è grande la tua matrice è o 140 00:07:33,320 --> 00:07:34,720 altrimenti si ottiene una segmentazione colpa. 141 00:07:34,720 --> 00:07:36,210 La tua matrice è un solo tipo. 142 00:07:36,210 --> 00:07:38,790 Quindi è sia un array di carica o un array di interi. 143 00:07:38,790 --> 00:07:43,620 In questo caso, ho creato una lista qui, che è una matrice, che ha la prima 144 00:07:43,620 --> 00:07:48,450 elemento è una stringa, John, e poi quattro, due - quelli sono numeri interi. 145 00:07:48,450 --> 00:07:53,590 E poi ho aggiungo, lista, Angolo Sinistra Staffa, Sinistra 146 00:07:53,590 --> 00:07:54,820 Staffa angolare, tre. 147 00:07:54,820 --> 00:07:58,170 Questo significa solo accodare qualcosa alla mia lista. 148 00:07:58,170 --> 00:08:01,630 >> Quindi è una specie di più interessante perché se voleste usare questo come 149 00:08:01,630 --> 00:08:03,920 solo un semplice elenco di numeri interi, si potrebbe, totalmente. 150 00:08:03,920 --> 00:08:05,530 Questo è totalmente soddisfacente. 151 00:08:05,530 --> 00:08:06,750 Basta mettere interi lì. 152 00:08:06,750 --> 00:08:10,240 Ma se si voleva fare qualcosa che è più convincente, che ha altri 153 00:08:10,240 --> 00:08:11,690 cose, che ha - 154 00:08:11,690 --> 00:08:15,480 Non lo so, tutti i tipi di elenchi lì, o altri oggetti che sono più 155 00:08:15,480 --> 00:08:16,970 interessante, si può assolutamente farlo. 156 00:08:16,970 --> 00:08:17,880 E 'tutto bene. 157 00:08:17,880 --> 00:08:21,210 E poi se si vuole scorrere l'elenco, si potrebbe utilizzare il 158 00:08:21,210 --> 00:08:24,850 più C-ish tipo di approccio. 159 00:08:24,850 --> 00:08:29,970 Questo è per ciclo, di avviare una variabile, i = "1", o i = "0". 160 00:08:29,970 --> 00:08:32,980 E poi si va, e iterazioni, e ottenere tutti gli elementi. 161 00:08:32,980 --> 00:08:37,559 >> Ma si potrebbe anche usare questo approccio più Ruby-like. 162 00:08:37,559 --> 00:08:40,289 Questo è solo come un list.each. 163 00:08:40,289 --> 00:08:45,230 Questo è solo dicendo, mi ritorno tutti gli elementi della lista. 164 00:08:45,230 --> 00:08:49,120 E che fare con ogni elemento, chiamarli elem. 165 00:08:49,120 --> 00:08:51,880 Quindi questo è solo un nome che io sono dando ad ogni elemento. 166 00:08:51,880 --> 00:08:56,630 E ora questo sta per ripetere per tutti gli elementi, e elem, sta andando 167 00:08:56,630 --> 00:09:00,790 essere il modo in cui accediamo quel singolo elemento. 168 00:09:00,790 --> 00:09:04,310 Così si potrebbe assolutamente attenersi al Approccio C, ma questo funziona anche. 169 00:09:04,310 --> 00:09:07,970 Ed è esattamente la stessa cosa, OK. 170 00:09:07,970 --> 00:09:13,830 >> E a parte questo, è davvero, veramente facile da integrare Ruby e HTML 171 00:09:13,830 --> 00:09:17,010 poiché voi siete interessati in applicazioni web. 172 00:09:17,010 --> 00:09:20,070 HTML è sicuramente qualcosa che avete intenzione di usare un sacco. 173 00:09:20,070 --> 00:09:25,820 E qui se si voleva mettere Rubino in HTML, basta iniziare qui, <%. 174 00:09:25,820 --> 00:09:28,500 Ciò significa che, qui di Ruby comincia. 175 00:09:28,500 --> 00:09:32,130 E poi%>, un po 'come PHP in questo senso. 176 00:09:32,130 --> 00:09:35,520 Qui Rubino finisce e poi si può basta mettere il vostro caso in qui. 177 00:09:35,520 --> 00:09:39,400 E poi ho qualche variabile user.logged_in. 178 00:09:39,400 --> 00:09:45,120 In Ruby, di solito aggiungiamo quelli, sia punto interrogativo o esclamativo 179 00:09:45,120 --> 00:09:48,210 segno, come un personaggio banca, solo per tipo di 180 00:09:48,210 --> 00:09:49,480 distinguere tra le nostre funzioni. 181 00:09:49,480 --> 00:09:52,780 Ma basta mettere che per il tuo bene. 182 00:09:52,780 --> 00:09:56,910 Non è qualcosa che cambia nulla nella funzionalità. 183 00:09:56,910 --> 00:10:01,160 >> Quindi, solo per ricordare a me che questa è una funzione - e le funzioni in Ruby, 184 00:10:01,160 --> 00:10:06,650 invece di C, come ho già detto, non hanno bisogno delle parentesi. 185 00:10:06,650 --> 00:10:09,740 Quindi, che ha registrato in cosa, che è una funzione, che è un metodo. 186 00:10:09,740 --> 00:10:12,990 Ma non in modo esplicito è necessario mettere le parentesi in là. 187 00:10:12,990 --> 00:10:16,030 Quindi, solo chiedendo se l'utente ha effettuato l'accesso, e se l'utente ha effettuato l'accesso, ora 188 00:10:16,030 --> 00:10:17,100 HTML ricomincia. 189 00:10:17,100 --> 00:10:21,670 Quindi benvenuto, e qui Stampa la user.name. 190 00:10:21,670 --> 00:10:22,920 E questo è tutto. 191 00:10:22,920 --> 00:10:24,970 192 00:10:24,970 --> 00:10:30,420 Ecco, questo è piuttosto semplice, come integrare rubino con codice HTML. 193 00:10:30,420 --> 00:10:34,560 E le risorse, come ho detto, ci sono tutti i tipi di risorse per Ruby. 194 00:10:34,560 --> 00:10:39,560 Voi potete guardare tutto questo in su dopo perché sia ​​il video, e 195 00:10:39,560 --> 00:10:40,875 le diapositive, stanno per essere disponibili online. 196 00:10:40,875 --> 00:10:44,620 197 00:10:44,620 --> 00:10:47,180 >> E ora cerchiamo di entrare in Rails. 198 00:10:47,180 --> 00:10:48,330 Rails è amore. 199 00:10:48,330 --> 00:10:49,230 Rails - 200 00:10:49,230 --> 00:10:51,030 così Ruby è il suo linguaggio. 201 00:10:51,030 --> 00:10:54,340 OK, proprio come PHP, proprio come Python. 202 00:10:54,340 --> 00:10:59,980 E 'un linguaggio di alto livello, non come C. Una via di mezzo, linguaggio di basso livello di C in 203 00:10:59,980 --> 00:11:05,240 il senso che Ruby non si deve preoccuparsi della memoria riallocazione e 204 00:11:05,240 --> 00:11:07,300 puntatori, e questo tipo di cose. 205 00:11:07,300 --> 00:11:11,120 Ma Rails è questo programma che è stato scritto in Ruby. 206 00:11:11,120 --> 00:11:15,610 E utilizza rubino, al fine di avere questa quadro, per voi essere in grado di 207 00:11:15,610 --> 00:11:18,990 costruire applicazioni web impressionante. 208 00:11:18,990 --> 00:11:21,940 >> Quindi bisogna prima installare Ruby on la vostra macchina, ma la maggior parte delle macchine 209 00:11:21,940 --> 00:11:22,630 già che. 210 00:11:22,630 --> 00:11:24,800 E quindi installare apparati su di esso. 211 00:11:24,800 --> 00:11:26,540 Stiamo andando a parlare più avanti. 212 00:11:26,540 --> 00:11:28,100 E perché Rails? 213 00:11:28,100 --> 00:11:31,470 Quindi MVC, che è il controllore vista del modello abbiamo parlato un po ' 214 00:11:31,470 --> 00:11:36,050 bit, rende tutto più semplice perché divide cose che sono 215 00:11:36,050 --> 00:11:42,420 concettualmente diverso in diversi parti dell'applicazione. 216 00:11:42,420 --> 00:11:45,930 Meno tempo speso sui problemi di basso livello, di nuovo, e molto, molto 217 00:11:45,930 --> 00:11:46,820 popolare in questo momento. 218 00:11:46,820 --> 00:11:52,130 Quindi per tutti coloro che sono interessati a la scena start up, o in qualcosa 219 00:11:52,130 --> 00:11:58,435 come iniziare le imprese, e le persone nel mercato della tecnologia che sono 220 00:11:58,435 --> 00:12:02,440 iniziare la propria attività in questo momento sono davvero, davvero appassionati di Ruby on 221 00:12:02,440 --> 00:12:04,120 Rails perché è così veloce. 222 00:12:04,120 --> 00:12:07,510 >> Così si può ottenere qualcosa di attivo e funzionante in meno di un giorno, e questo è 223 00:12:07,510 --> 00:12:10,410 davvero molto interessante argomento per usare Ruby. 224 00:12:10,410 --> 00:12:13,460 E Rails 4.0 - 225 00:12:13,460 --> 00:12:15,920 è molto fresco dal forno momento. 226 00:12:15,920 --> 00:12:16,930 Così Rails 4.0 - 227 00:12:16,930 --> 00:12:20,180 Penso che la prima release fu nel marzo di quest'anno. 228 00:12:20,180 --> 00:12:23,460 Ed è davvero bello, ha tutto tipi di nuove funzioni interessanti. 229 00:12:23,460 --> 00:12:30,290 Così Ruby on Rails è un framework che è costantemente aggiornato per avere tutte 230 00:12:30,290 --> 00:12:31,540 della nuova tecnologia. 231 00:12:31,540 --> 00:12:33,710 232 00:12:33,710 --> 00:12:39,800 >> La prima volta che ho provato ad usare Ruby on Rails, ho avuto questo problema perché 233 00:12:39,800 --> 00:12:44,540 creato la mia prima applicazione web, e sembrava esattamente così. 234 00:12:44,540 --> 00:12:49,020 Così si crea tutti i file per te, e non avevo idea di cosa - 235 00:12:49,020 --> 00:12:50,780 che cosa è questo? 236 00:12:50,780 --> 00:12:54,850 Ha creato tutti quei file, e io solo ha voluto creare un semplice programma, una 237 00:12:54,850 --> 00:12:57,140 semplice sito HTML. 238 00:12:57,140 --> 00:12:59,680 E io non riuscivo nemmeno a fare nulla. 239 00:12:59,680 --> 00:13:02,430 Quindi ero un po 'sopraffatta. 240 00:13:02,430 --> 00:13:08,350 Ma questa è una delle cose che una volta si capisce, tutto diventa così 241 00:13:08,350 --> 00:13:09,190 molto più chiara. 242 00:13:09,190 --> 00:13:15,750 Quindi non essere sopraffatti dal primo vista di ciò che si crea in un primo momento. 243 00:13:15,750 --> 00:13:18,430 >> Quindi quello che succede è Rails crea tutti quei file. 244 00:13:18,430 --> 00:13:20,470 Così uno dei cioè doc, documentazione. 245 00:13:20,470 --> 00:13:23,080 Db, che è legato al database. 246 00:13:23,080 --> 00:13:25,060 Lib, che sta librerie log. 247 00:13:25,060 --> 00:13:28,200 Pubblico, sceneggiatura, e alcune cose. 248 00:13:28,200 --> 00:13:32,110 Praticamente tutto si sta andando a preoccuparsi circa è la cartella app, lassù. 249 00:13:32,110 --> 00:13:34,430 Questa è la cartella che contiene l'applicazione. 250 00:13:34,430 --> 00:13:35,540 Tutti gli altri file - 251 00:13:35,540 --> 00:13:37,770 alcuni di loro sono importanti, e sei andando a conoscere più avanti. 252 00:13:37,770 --> 00:13:42,040 Ma sono qui solo per contenere il quadro. 253 00:13:42,040 --> 00:13:46,420 Così i primi capisaldi della casa voi state costruendo, OK? 254 00:13:46,420 --> 00:13:47,730 >> Ma la cartella app - 255 00:13:47,730 --> 00:13:49,630 che è quello veramente importante. 256 00:13:49,630 --> 00:13:53,050 E la cartella applicazione ha beni. 257 00:13:53,050 --> 00:13:57,690 Le attività è praticamente tutto che sta arrivando. 258 00:13:57,690 --> 00:14:01,890 Immagini per esempio, tutto ciò che è statico che sta per essere scaricato 259 00:14:01,890 --> 00:14:03,450 al tuo sito web. 260 00:14:03,450 --> 00:14:06,850 Così le immagini, JavaScript, CSS - 261 00:14:06,850 --> 00:14:08,520 questo tipo di cose sono beni. 262 00:14:08,520 --> 00:14:11,310 263 00:14:11,310 --> 00:14:12,260 Controllori - 264 00:14:12,260 --> 00:14:15,190 stiamo andando a chiacchierare quali sono i controllori, i modelli, 265 00:14:15,190 --> 00:14:16,800 e campi in un secondo. 266 00:14:16,800 --> 00:14:20,760 E helper sono funzioni che può usare su tutto il codice 267 00:14:20,760 --> 00:14:22,800 per aiutarvi a fare qualcosa. 268 00:14:22,800 --> 00:14:25,800 Funzioni come connessi, per esempio - user.loggedin. 269 00:14:25,800 --> 00:14:29,500 Questa è una funzione che probabilmente dovrà utilizzare in tutte le parti del 270 00:14:29,500 --> 00:14:30,030 applicazione. 271 00:14:30,030 --> 00:14:33,590 Così si può mettere qualcosa di simile che nel vostro aiutante. 272 00:14:33,590 --> 00:14:34,370 >> Buste - 273 00:14:34,370 --> 00:14:41,480 che, se avete intenzione di inviare una e-mail agli utenti, è 274 00:14:41,480 --> 00:14:43,420 desidera utilizzare un mailer. 275 00:14:43,420 --> 00:14:46,420 E i modelli e punti di vista, stiamo andando per parlare di questo adesso. 276 00:14:46,420 --> 00:14:52,450 Quindi il controllore vista del modello, che è la pietra angolare di base di Ruby on 277 00:14:52,450 --> 00:14:55,730 Rails, e la maggior parte dei quadri al giorno d'oggi, ad essere onesti. 278 00:14:55,730 --> 00:15:01,180 Così ancora una volta, ci separiamo tutti del nostro codice in tre parti differenti. 279 00:15:01,180 --> 00:15:02,590 Il modello - 280 00:15:02,590 --> 00:15:04,620 il modello è fondamentalmente il database. 281 00:15:04,620 --> 00:15:06,090 Gestisce cose nel database. 282 00:15:06,090 --> 00:15:10,790 >> Così ogni tabella nel database ha un corrispondente file all'interno del modello. 283 00:15:10,790 --> 00:15:13,330 Quindi è una specie di tavola per gli utenti. 284 00:15:13,330 --> 00:15:18,250 Quindi stai memorizzazione delle informazioni come l' nome utente, le loro e-mail, la loro 285 00:15:18,250 --> 00:15:20,970 indirizzo, la password, e cose del genere. 286 00:15:20,970 --> 00:15:24,535 Stai andando ad avere un file in il modello chiamato rb utente - 287 00:15:24,535 --> 00:15:26,240 rb per Ruby. 288 00:15:26,240 --> 00:15:30,180 E ci si sta andando ad avere tutto dei metodi e le variabili. 289 00:15:30,180 --> 00:15:34,130 Le variabili stanno per corrispondenza per il nome utente, la posta elettronica, e 290 00:15:34,130 --> 00:15:35,370 tutto. 291 00:15:35,370 --> 00:15:37,760 >> E si sta andando ad avere i metodi. 292 00:15:37,760 --> 00:15:42,690 Che sarà qualcosa che riguarda - 293 00:15:42,690 --> 00:15:46,400 si sta andando a gestire queste informazioni nel database. 294 00:15:46,400 --> 00:15:50,220 Per creare un modello con Rails, si utilizza solo Rails generano. 295 00:15:50,220 --> 00:15:54,990 E per creare le cose in Rails, è effettivamente bisogno il terminale. 296 00:15:54,990 --> 00:15:58,770 Quindi è un terminale quadro basato. 297 00:15:58,770 --> 00:16:02,530 Basta accedere nel terminale, e do Rails, generare il modello. 298 00:16:02,530 --> 00:16:04,670 E il nome del modello è user. 299 00:16:04,670 --> 00:16:10,270 E voglio solo avere due variabili, due colonne, nella mia tabella. 300 00:16:10,270 --> 00:16:11,450 Ecco, questo è email. 301 00:16:11,450 --> 00:16:13,080 La posta elettronica è una stringa tipo. 302 00:16:13,080 --> 00:16:15,450 Password, la password è anche una stringa tipo. 303 00:16:15,450 --> 00:16:16,520 Queste sono le uniche due cose. 304 00:16:16,520 --> 00:16:19,160 E 'una specie di tabella utente semplicistico. 305 00:16:19,160 --> 00:16:22,490 Ma si potrebbe assolutamente mettere un centinaio di cosa c'è se si voleva. 306 00:16:22,490 --> 00:16:27,620 >> E Rails rende anche molto, molto semplice per avere tutti 307 00:16:27,620 --> 00:16:30,040 tipi di relazioni di database. 308 00:16:30,040 --> 00:16:36,100 Così, di solito, quando hai le tabelle nel vostro di database, non sono molto 309 00:16:36,100 --> 00:16:37,570 indipendenti l'uno dall'altro. 310 00:16:37,570 --> 00:16:39,392 Pensiamoci. 311 00:16:39,392 --> 00:16:42,960 Vuoi acquistare e vendere prodotti online. 312 00:16:42,960 --> 00:16:46,620 OK, in modo da avere un sito web dove si desidera acquistare e vendere prodotti. 313 00:16:46,620 --> 00:16:55,060 Quindi, ogni utente ha molti prodotti che l'utente è disposto a vendere. 314 00:16:55,060 --> 00:17:00,970 E ogni utente ha anche molte transazioni che sono in corso, o 315 00:17:00,970 --> 00:17:01,920 qualcosa di simile. 316 00:17:01,920 --> 00:17:05,430 E le transazioni sono con un altro utente. 317 00:17:05,430 --> 00:17:08,310 Ogni transazione appartiene a due utenti diversi. 318 00:17:08,310 --> 00:17:10,560 L'utente che sta acquistando e l'utente che sta vendendo. 319 00:17:10,560 --> 00:17:13,920 >> Così quelli sono i cosiddetti relazioni di database. 320 00:17:13,920 --> 00:17:17,890 E qui abbiamo esattamente tali parole chiave, ha molti e appartiene a. 321 00:17:17,890 --> 00:17:19,500 Questi sono i più importanti. 322 00:17:19,500 --> 00:17:22,410 E si sta solo andando a dire, per esempio, questo è l'esempio di un 323 00:17:22,410 --> 00:17:25,740 modello nel 2017 sito di Harvard. 324 00:17:25,740 --> 00:17:28,820 Anche in questo caso, gli studenti di qui - 325 00:17:28,820 --> 00:17:32,870 ogni studente sul sito, studente è un modello, è una tabella di database. 326 00:17:32,870 --> 00:17:37,560 Ogni studente aveva molti libri perché si poteva dire, quali sono il tuo preferito 327 00:17:37,560 --> 00:17:38,630 libri, a destra. 328 00:17:38,630 --> 00:17:44,450 Così ogni libro appartiene a uno studente qui. 329 00:17:44,450 --> 00:17:46,910 E attributo accessibili - 330 00:17:46,910 --> 00:17:49,580 che sta solo dicendo, quelli sono le variabili. 331 00:17:49,580 --> 00:17:53,050 Queste sono le variabili accessibili da questo modello. 332 00:17:53,050 --> 00:17:58,570 E le variabili sono l'autore di il libro, la descrizione, genere, e 333 00:17:58,570 --> 00:17:59,870 titolo del libro. 334 00:17:59,870 --> 00:18:02,700 Quindi solo le informazioni per quanto riguarda il libro. 335 00:18:02,700 --> 00:18:06,410 >> E qui ho un metodo che ordina semplicemente tutto. 336 00:18:06,410 --> 00:18:10,710 Così definiscono e finiscono qui, questo è solo dicendo, ecco che arriva il mio metodo. 337 00:18:10,710 --> 00:18:13,220 Self.sorted_all. 338 00:18:13,220 --> 00:18:16,390 Questo è solo, mi danno tutto risolto, ed è così che si implementa 339 00:18:16,390 --> 00:18:22,360 l'algoritmo di ordinamento, che è abbastanza facile. 340 00:18:22,360 --> 00:18:27,430 Ma in fondo, questo è il modo un modello assomiglia, OK. 341 00:18:27,430 --> 00:18:32,990 Qualcuno ha domande relative questa cosa database? 342 00:18:32,990 --> 00:18:33,736 Relazioni? 343 00:18:33,736 --> 00:18:36,430 È chiaro? 344 00:18:36,430 --> 00:18:37,125 Sì. 345 00:18:37,125 --> 00:18:38,490 >> PUBBLICO: Si può fare l'algoritmo di ordinamento? 346 00:18:38,490 --> 00:18:41,960 >> GABRIEL GUIMARAES: L' algoritmo di ordinamento, OK. 347 00:18:41,960 --> 00:18:45,340 Quando ci si abitua alla sintassi Ruby, che sta per essere chiari. 348 00:18:45,340 --> 00:18:48,800 Ma in fondo, elems è Book.all. 349 00:18:48,800 --> 00:18:50,820 Così il libro è il nome del mio modello. 350 00:18:50,820 --> 00:18:55,670 Quando si crea un modello, si tratta con tutti i tipi di metodi belle per voi. 351 00:18:55,670 --> 00:18:58,810 Quindi dot.all è un metodo che restituisce tutti i libri. 352 00:18:58,810 --> 00:19:02,560 Ma trovare, per esempio, sarebbe cercare un libro e restituire quel libro, o 353 00:19:02,560 --> 00:19:03,840 qualcosa di simile. 354 00:19:03,840 --> 00:19:05,990 E così elems è tutto. 355 00:19:05,990 --> 00:19:08,870 E io sto solo dicendo elems.sort. 356 00:19:08,870 --> 00:19:11,300 Sort è una funzione built-in Ruby. 357 00:19:11,300 --> 00:19:13,526 >> E, fare ab. 358 00:19:13,526 --> 00:19:15,940 Quindi questo do è di nuovo - 359 00:19:15,940 --> 00:19:17,400 avete intenzione di ordinare. 360 00:19:17,400 --> 00:19:19,850 Ma si sta andando ad ottenere questo argomento per me. 361 00:19:19,850 --> 00:19:25,160 E l'argomento utilizza - questa è una delle le cose più difficili in Ruby in realtà, 362 00:19:25,160 --> 00:19:26,920 questo fa cosa. 363 00:19:26,920 --> 00:19:31,470 Ma una volta che hai capito tutto viene molto, molto intuitivo. 364 00:19:31,470 --> 00:19:37,140 Così l'ab, questo sta dicendo il posto titolari che ho intenzione di utilizzare - come 365 00:19:37,140 --> 00:19:41,760 le variabili ho intenzione di usare, sono sta per essere chiamato a e b. 366 00:19:41,760 --> 00:19:43,380 E questi sono i libri. 367 00:19:43,380 --> 00:19:47,120 >> Quindi perché ordinamento deve confrontare elementi, ricordate che? 368 00:19:47,120 --> 00:19:49,760 Così, quando si ordinano cose, confrontare due elementi. 369 00:19:49,760 --> 00:19:51,900 Io vado a dire che ogni volta si sta andando a confrontare - 370 00:19:51,900 --> 00:19:54,350 quindi questo è, sto passando per ordinare un argomento. 371 00:19:54,350 --> 00:19:59,370 E l'argomento è tutto da do a e qui, OK? 372 00:19:59,370 --> 00:20:02,980 E questo argomento, è solo dicendo ordinamento come confrontare. 373 00:20:02,980 --> 00:20:07,460 Ordina sarebbe lavorare qui, ma potrebbe confrontare con il loro 374 00:20:07,460 --> 00:20:09,530 di default il confronto algoritmo. 375 00:20:09,530 --> 00:20:13,810 Voglio che confrontare in modo molto specifico modo, cioè, quando il libro 376 00:20:13,810 --> 00:20:16,900 è stato creato, quando ogni il libro è stato creato. 377 00:20:16,900 --> 00:20:21,090 >> Così sto dicendo, dire il nome del primo è un libro e il nome del 378 00:20:21,090 --> 00:20:27,620 secondo libro come b, voglio sort per ordinare qualcosa sulla base di questo b.created_at 379 00:20:27,620 --> 00:20:30,000 Simbolo strano, a.created_at. 380 00:20:30,000 --> 00:20:34,350 E quel simbolo strano è l'abbreviazione perché se uno è più grande di 381 00:20:34,350 --> 00:20:35,380 altro, ritorno 1. 382 00:20:35,380 --> 00:20:37,450 Se uno è uguale alla altro, restituire zero. 383 00:20:37,450 --> 00:20:41,180 Se uno è più piccolo del altro, il ritorno meno 1. 384 00:20:41,180 --> 00:20:43,435 Ecco che cosa quel simbolo strana è. 385 00:20:43,435 --> 00:20:46,680 386 00:20:46,680 --> 00:20:47,500 >> Ma questo non è importante. 387 00:20:47,500 --> 00:20:52,780 Voglio dire, quello che voglio voi ragazzi per ottenere ora è l'idea che del database - 388 00:20:52,780 --> 00:20:54,150 si può avere il modello lì. 389 00:20:54,150 --> 00:20:59,850 Quindi non dovete preoccuparvi di collegare ed utilizzare un'istruzione SQL, 390 00:20:59,850 --> 00:21:00,500 e cose del genere. 391 00:21:00,500 --> 00:21:04,920 Si può anche creare porte SQL injection e tutti 392 00:21:04,920 --> 00:21:06,460 tipi di problemi di sicurezza. 393 00:21:06,460 --> 00:21:07,930 In questo caso, non è necessario preoccupare di questo. 394 00:21:07,930 --> 00:21:11,880 Basta usare metodi come book.all. 395 00:21:11,880 --> 00:21:15,210 E che, in background naturalmente, sta per il database, ed è 396 00:21:15,210 --> 00:21:17,570 andando ad utilizzare un'istruzione SQL per ottenere tutti i libri. 397 00:21:17,570 --> 00:21:19,650 Ma non c'è bisogno di preoccupare di questo. 398 00:21:19,650 --> 00:21:24,090 Questo è il takeaway, OK? 399 00:21:24,090 --> 00:21:26,790 >> E quando si ha una dichiarazione belongs_to come questo, il che significa che 400 00:21:26,790 --> 00:21:31,780 una volta che hai un oggetto libro, può vedere qual è il suo allievo. 401 00:21:31,780 --> 00:21:34,130 Quindi, quale studente ha questo libro? 402 00:21:34,130 --> 00:21:38,760 Così possiamo semplicemente usare book.student, e che ti dà ciò che lo studente sia. 403 00:21:38,760 --> 00:21:42,440 E questo è davvero caratteristica di avere. 404 00:21:42,440 --> 00:21:43,950 >> OK, ora la vista. 405 00:21:43,950 --> 00:21:48,380 Quindi il modello è quello che interagisce con il database, giusto? 406 00:21:48,380 --> 00:21:52,240 La vista è fondamentalmente HTML, e CSS, ed alcuni JavaScript. 407 00:21:52,240 --> 00:21:55,080 Ed è quello che l'utente in realtà vede. 408 00:21:55,080 --> 00:21:56,540 L'utente non ha intenzione di consultare il database. 409 00:21:56,540 --> 00:22:00,290 Sta a vedere alcuni dati dal database integrato nel visualizzatore. 410 00:22:00,290 --> 00:22:04,940 411 00:22:04,940 --> 00:22:08,410 Ruby on Rails rende davvero di semplice realizzazione campi. 412 00:22:08,410 --> 00:22:12,780 In primo luogo, perché crea già lo per voi, fuori dalla scatola, un layout. 413 00:22:12,780 --> 00:22:16,200 >> Un layout è fondamentalmente qualcosa che - 414 00:22:16,200 --> 00:22:24,230 se tutte le pagine hanno un logo sulla parte superiore e, non so, qualche menu o 415 00:22:24,230 --> 00:22:29,000 qualcosa di simile, che tutte le pagine quota in comune, allora non 416 00:22:29,000 --> 00:22:34,830 necessario creare molti, molti, molti HTML file dove tutti i file che hanno 417 00:22:34,830 --> 00:22:36,830 stesso codice HTML. 418 00:22:36,830 --> 00:22:40,700 Voglio dire che è stupido perché sei solo ripetendo codice tra diversi file. 419 00:22:40,700 --> 00:22:42,480 Questo non è sicuramente un buon approccio. 420 00:22:42,480 --> 00:22:45,660 >> Così Ruby on Rails crea questo layout per voi. 421 00:22:45,660 --> 00:22:49,770 E questo è solo dicendo, tutte le mie pagine stanno per avere questo HTML, questa testa 422 00:22:49,770 --> 00:22:54,805 titolo qui, e quelli sono Link foglio di stile tag. 423 00:22:54,805 --> 00:22:56,800 Inserire qui tutto il mio CSS. 424 00:22:56,800 --> 00:23:01,194 Inserire qui tutto il mio JavaScript e alcuni meta tag. 425 00:23:01,194 --> 00:23:04,440 Questo è solo qualcosa che fare automaticamente. 426 00:23:04,440 --> 00:23:07,490 E poi, terminare la testa, ora qui inizia il corpo. 427 00:23:07,490 --> 00:23:09,780 E ora questo è il mio contenuto effettivo. 428 00:23:09,780 --> 00:23:16,620 Quindi, se ho voluto mettere qualcosa di simile, un menù qui, mi avrebbe messo proprio sopra 429 00:23:16,620 --> 00:23:19,600 questo posto, o qualcosa di simile, in modo che tutte le mie pagine condiviso. 430 00:23:19,600 --> 00:23:21,730 Così il layout è condivisa da tutte le pagine. 431 00:23:21,730 --> 00:23:26,500 >> Ora che il rendimento qui dice solo, non ciò che importa pagine questo è in, basta 432 00:23:26,500 --> 00:23:30,560 collegare il contenuto di tale la pagina in qui, OK? 433 00:23:30,560 --> 00:23:33,770 E ora questo è, per esempio, la contenuto di una pagina che sta per essere 434 00:23:33,770 --> 00:23:38,950 collegato a questa dichiarazione resa automaticamente da Rails. 435 00:23:38,950 --> 00:23:40,700 Ma questo è un layout comune da tutte le pagine. 436 00:23:40,700 --> 00:23:42,500 E questo è un esempio di una pagina. 437 00:23:42,500 --> 00:23:46,410 E questo è esattamente la pagina che elenca tutti i libri. 438 00:23:46,410 --> 00:23:49,390 Quindi questa è una tabella HTML di base fino in alto. 439 00:23:49,390 --> 00:23:53,730 Così quotazione libri, un titolo, autore, descrizione, genere. 440 00:23:53,730 --> 00:24:00,810 >> E qui usiamo, ancora una volta, un po ' Sintassi Ruby, @ books.each-- 441 00:24:00,810 --> 00:24:07,720 @ Tipo di dice che la variabile è globale in un certo senso. 442 00:24:07,720 --> 00:24:10,940 Poiché questa variabile era in realtà dichiarata nel controllore che 443 00:24:10,940 --> 00:24:12,840 si sta andando a vedere in questo momento. 444 00:24:12,840 --> 00:24:18,570 Ma basta dare per scontato che questo @ Libri è una variabile che è una lista di 445 00:24:18,570 --> 00:24:20,000 tutti i libri. 446 00:24:20,000 --> 00:24:24,580 Così books.each, do, e di nuovo, questo è solo dicendo come si desidera denominare 447 00:24:24,580 --> 00:24:29,580 ciascuno degli iteratori in modo che non lo facciamo deve preoccuparsi di un quattro, int i 448 00:24:29,580 --> 00:24:30,630 blah, blah, blah. 449 00:24:30,630 --> 00:24:33,760 Abbiamo appena prendiamo ciascuno degli elementi e li usa. 450 00:24:33,760 --> 00:24:38,890 >> Quindi questo è il libro, e poi semplicemente stampare qui. book.title, book.author, 451 00:24:38,890 --> 00:24:41,020 book.description, e blah, blah, blah. 452 00:24:41,020 --> 00:24:42,940 Ed ecco un link_to. 453 00:24:42,940 --> 00:24:46,840 Quindi link_to è solo un tag link che un utente può cliccare su e 454 00:24:46,840 --> 00:24:49,040 va a un altro sito web. 455 00:24:49,040 --> 00:24:51,160 Link_to, mostrano quel particolare libro. 456 00:24:51,160 --> 00:24:56,480 Quindi, se l'utente è molto interessato a questo libro, allora può scegliere in mostra. 457 00:24:56,480 --> 00:24:59,350 Oppure clicca su modifica, se vuole per modificare il libro. 458 00:24:59,350 --> 00:25:03,560 O distruggere, se vuole eliminare il libro dal database. 459 00:25:03,560 --> 00:25:06,260 OK, fa che ha un senso? 460 00:25:06,260 --> 00:25:08,610 Buona. 461 00:25:08,610 --> 00:25:10,600 >> Infine, il controllore. 462 00:25:10,600 --> 00:25:17,150 Quindi, in pratica il controller è l'interfaccia tra il 463 00:25:17,150 --> 00:25:20,040 modello e la vista. 464 00:25:20,040 --> 00:25:25,120 Quindi il modello è la parte del codice che ha del database - 465 00:25:25,120 --> 00:25:27,620 ogni tabella nel database ha un rispettivo file nella 466 00:25:27,620 --> 00:25:30,120 modello, e così via. 467 00:25:30,120 --> 00:25:34,890 E come si fa il modello e la vista interagiscono? 468 00:25:34,890 --> 00:25:36,990 Quindi, attraverso il controller. 469 00:25:36,990 --> 00:25:43,620 Quello che un controllore fa è che è l' modello per qualcosa come, per esempio, 470 00:25:43,620 --> 00:25:46,510 mettere tutto il libro dentro di una variabile. 471 00:25:46,510 --> 00:25:47,760 Come questo, @ libri. 472 00:25:47,760 --> 00:25:50,200 473 00:25:50,200 --> 00:25:54,800 >> E deve essere globale con questo a cosa perché sarà 474 00:25:54,800 --> 00:25:56,180 si accede dalla vista. 475 00:25:56,180 --> 00:26:00,000 Non sta andando ad essere utilizzato entro controllore stesso. 476 00:26:00,000 --> 00:26:03,160 E si rallenta solo le informazioni che la vista sta per usare. 477 00:26:03,160 --> 00:26:08,030 Ad esempio, il regolatore verifica se l'utente è online. 478 00:26:08,030 --> 00:26:09,620 E come si fa? 479 00:26:09,620 --> 00:26:11,760 In realtà chiede il modello perché il modello ha la 480 00:26:11,760 --> 00:26:12,890 informazioni sull'utente. 481 00:26:12,890 --> 00:26:15,840 Ha un tavolo di utenti, i libri Tavolo, altre tabelle. 482 00:26:15,840 --> 00:26:18,560 Quindi il controllore chiede se l'utente è in linea. 483 00:26:18,560 --> 00:26:23,760 Se l'utente è online, il controllore gestisce le cose come mettere un cookie, 484 00:26:23,760 --> 00:26:28,120 o qualcosa di simile, per mettere il timbro dire che l'utente è in linea. 485 00:26:28,120 --> 00:26:29,930 Non c'è bisogno di effettuare nuovamente il login. 486 00:26:29,930 --> 00:26:34,080 >> E sta andando a caricare una variabile chiamata utente, ad esempio, che la 487 00:26:34,080 --> 00:26:35,130 vista può utilizzare. 488 00:26:35,130 --> 00:26:42,375 E la vista può mettere qualcosa qui, per esempio, benvenuto user.name. 489 00:26:42,375 --> 00:26:46,040 Così sta andando a dire, benvenuto John, benvenuto James - 490 00:26:46,040 --> 00:26:47,390 qualcosa di simile, giusto? 491 00:26:47,390 --> 00:26:50,380 Quindi tutte queste variabili utilizzate nella vista stanno per essere caricato nel 492 00:26:50,380 --> 00:26:54,190 controller e stanno per essere tirato su dal modello. 493 00:26:54,190 --> 00:26:58,310 494 00:26:58,310 --> 00:27:00,555 >> Questo è l'esempio di un controllore. 495 00:27:00,555 --> 00:27:03,140 496 00:27:03,140 --> 00:27:08,640 Così abbiamo, in fondo, ognuno - 497 00:27:08,640 --> 00:27:10,010 noi chiamiamo quelle azioni cose. 498 00:27:10,010 --> 00:27:11,570 Così l'indice è un'azione. 499 00:27:11,570 --> 00:27:13,820 E 'una funzione Ruby. 500 00:27:13,820 --> 00:27:16,160 E 'un metodo Ruby in là. 501 00:27:16,160 --> 00:27:19,350 Ma per le chiamate regolatore quelle cose azioni. 502 00:27:19,350 --> 00:27:24,830 E ogni azione è legata ad un percorso. 503 00:27:24,830 --> 00:27:29,350 Quindi, ecco questo percorso, per esempio, è una prima dichiarazione / libri. 504 00:27:29,350 --> 00:27:37,500 Quindi se andate a harvard2017.com/books, cosa sta per accadere è questo codice è 505 00:27:37,500 --> 00:27:40,630 sta per essere chiamato. 506 00:27:40,630 --> 00:27:44,290 >> E c'è un file - 507 00:27:44,290 --> 00:27:46,010 mi permetta di aprire questo reale veloce. 508 00:27:46,010 --> 00:27:51,310 509 00:27:51,310 --> 00:27:55,386 C'è un file chiamato file raw. 510 00:27:55,386 --> 00:27:57,920 Non è l'apertura. 511 00:27:57,920 --> 00:28:02,330 Quindi c'è un file chiamato file raw che in fondo corrisponde - 512 00:28:02,330 --> 00:28:03,580 oh, ora si sta aprendo. 513 00:28:03,580 --> 00:28:15,900 514 00:28:15,900 --> 00:28:17,550 Qui, percorsi. 515 00:28:17,550 --> 00:28:24,440 Quindi, in pratica corrisponde a un ceppo, Attivazione / nuovo, ad esempio, a 516 00:28:24,440 --> 00:28:27,810 qualcosa nel controllore. 517 00:28:27,810 --> 00:28:31,580 Quindi c'è questo controller chiamato controller di attivazione, ma qui, 518 00:28:31,580 --> 00:28:32,790 abbiamo i libri, per esempio. 519 00:28:32,790 --> 00:28:33,740 So partite - 520 00:28:33,740 --> 00:28:39,040 Libri / nuovo, al controllore libri, l'azione nuova. 521 00:28:39,040 --> 00:28:41,290 Quindi, fondamentalmente, molto semplice cose. 522 00:28:41,290 --> 00:28:43,970 523 00:28:43,970 --> 00:28:48,770 >> E qui, se dovesse arrivare / libri, tagliare l'ID dei libri, tagliare nuovo, 524 00:28:48,770 --> 00:28:53,250 avete intenzione di andare a quel Metodo Rubino laggiù. 525 00:28:53,250 --> 00:28:58,210 Ecco, che cosa questo indice sta facendo è solo il caricamento log book. 526 00:28:58,210 --> 00:28:59,570 Questo è qualcosa che - 527 00:28:59,570 --> 00:29:02,160 I accedo tutti i libri in un registro. 528 00:29:02,160 --> 00:29:03,050 E ordinare tutto. 529 00:29:03,050 --> 00:29:05,870 Quindi questo sta per tornare tutti i libri ordinati. 530 00:29:05,870 --> 00:29:07,940 Questo è, ancora, nel database. 531 00:29:07,940 --> 00:29:09,570 Quindi questo è un metodo del modello. 532 00:29:09,570 --> 00:29:12,440 Hai visto questo metodo è creato nel modello. 533 00:29:12,440 --> 00:29:16,170 Ora questo è solo caricando tutti i libri e conclude che in una variabile che 534 00:29:16,170 --> 00:29:17,490 può essere visto dalla vista. 535 00:29:17,490 --> 00:29:20,680 >> Perché non si può, nel mezzo di il codice HTML, non è possibile chiamare 536 00:29:20,680 --> 00:29:23,940 qualcosa direttamente dal modello, perché per due ragioni. 537 00:29:23,940 --> 00:29:28,260 In primo luogo, per motivi di sicurezza perché non è davvero interessante per essere 538 00:29:28,260 --> 00:29:32,920 caricare le informazioni direttamente all'interno ogni codice HTML che è nel database. 539 00:29:32,920 --> 00:29:36,030 E in secondo luogo, per mantenere il vostro codice davvero organizzato. 540 00:29:36,030 --> 00:29:38,800 Quindi separare esattamente la diverse parti. 541 00:29:38,800 --> 00:29:42,830 Quindi BookLog.sorted_all, questa nella database e questo sta per mettere in 542 00:29:42,830 --> 00:29:44,290 una variabile @ libri. 543 00:29:44,290 --> 00:29:47,695 E ora questa variabile è accessibile all'interno del codice HTML. 544 00:29:47,695 --> 00:29:54,610 Così si può semplicemente mettere tutti i libri non proprio come abbiamo fatto noi, proprio qui. 545 00:29:54,610 --> 00:29:57,760 Questa è la variabile. 546 00:29:57,760 --> 00:30:04,730 >> E le visite respond_to fare | Formato |, questa è solo una sorta di sintassi Ruby 547 00:30:04,730 --> 00:30:08,140 se l'utente mi chiede Il codice HTML, ho intenzione di 548 00:30:08,140 --> 00:30:09,340 rispondere con il codice HTML. 549 00:30:09,340 --> 00:30:15,500 Se l'utente mi chiede con il codice JSON, che è qualcosa che applicazioni web usano 550 00:30:15,500 --> 00:30:20,780 di comunicare tra loro, hanno di solito utilizzare JSON o qualche altro 551 00:30:20,780 --> 00:30:23,120 genere di cose. 552 00:30:23,120 --> 00:30:25,850 Così risponde usando solo quelli due diversi formati. 553 00:30:25,850 --> 00:30:31,720 Ma per un utente normale, questo non avrebbe bisogno di essere qui. 554 00:30:31,720 --> 00:30:34,060 Si potrebbe semplicemente rispondere con HTML, e va bene. 555 00:30:34,060 --> 00:30:36,220 Quindi in realtà non ti preoccupare che molto su questo. 556 00:30:36,220 --> 00:30:39,510 Questa è l'unica linea di codice nel nostro controllo come sta caricando da HTML 557 00:30:39,510 --> 00:30:42,630 banca dati, mettendo in qualcosa che è accessibili dalla vista. 558 00:30:42,630 --> 00:30:49,870 >> E poi di nuovo, ecco Sto creando libri. 559 00:30:49,870 --> 00:30:55,490 Ma per creare i libri, ho bisogno di uno studente perché ho bisogno di sapere lo studente 560 00:30:55,490 --> 00:30:58,490 i cui libri appartengono a questa, a destra. 561 00:30:58,490 --> 00:31:00,780 Quindi @ studente = Student. 562 00:31:00,780 --> 00:31:06,500 Studente, ancora una volta, stiamo iniziando con una grande S è lo studente modello. 563 00:31:06,500 --> 00:31:09,380 Ok, quindi questo è lo studente modello, questo è il log modello di libro. 564 00:31:09,380 --> 00:31:15,150 Student.find, quindi sto andando a trovare un studente utilizzando l'ID dei parametri. 565 00:31:15,150 --> 00:31:19,160 params.id, questo è solo me ottenere il valore di questo ID che è stato passato - 566 00:31:19,160 --> 00:31:23,410 e l'URL. 567 00:31:23,410 --> 00:31:25,440 >> Basta andare a cercare quello studente. 568 00:31:25,440 --> 00:31:28,420 E in primo luogo, stiamo andando a controllare se lo studente ha alcune canzoni 569 00:31:28,420 --> 00:31:29,910 e bla, bla, bla. 570 00:31:29,910 --> 00:31:35,570 E questo già gestisce l' caso in cui lo studente 571 00:31:35,570 --> 00:31:38,340 non esiste, per esempio. 572 00:31:38,340 --> 00:31:44,450 E poi, altra cosa, abbiamo appena rispondiamo la stessa cosa utilizzando HTML. 573 00:31:44,450 --> 00:31:47,570 E allora possiamo lasciare che l'utente creare le loro canzoni. 574 00:31:47,570 --> 00:31:49,320 Quindi questa è una novità. 575 00:31:49,320 --> 00:31:52,580 Nuovo è di solito utilizzato per, lasciare all'utente di creare qualcosa. 576 00:31:52,580 --> 00:31:56,440 E poi c'è l'azione di creare che è di solito utilizzato per - 577 00:31:56,440 --> 00:31:59,040 effettivamente messo le canzoni nel database o qualcosa di simile. 578 00:31:59,040 --> 00:32:01,770 Ma una volta di iniziare a utilizzare Rails, le cose stanno per essere 579 00:32:01,770 --> 00:32:05,110 molto, molto più chiaro. 580 00:32:05,110 --> 00:32:07,910 OK, raffreddare. 581 00:32:07,910 --> 00:32:09,715 Tutte le domande finora? 582 00:32:09,715 --> 00:32:15,240 Fa ha senso con i controllori, modelli, i campi - 583 00:32:15,240 --> 00:32:17,860 sì? 584 00:32:17,860 --> 00:32:20,980 >> Sempre nella vostra applicazione Rails - 585 00:32:20,980 --> 00:32:24,700 così tutto questo può essere trovato qui. 586 00:32:24,700 --> 00:32:30,430 Così avete app, controllori, quelli sono tutti i miei controllori. 587 00:32:30,430 --> 00:32:32,880 Così, per esempio, i libri controllano. 588 00:32:32,880 --> 00:32:35,490 Questo è quello che abbiamo appena visto. 589 00:32:35,490 --> 00:32:36,400 E poi viste. 590 00:32:36,400 --> 00:32:39,750 E ogni controller ha un visualizzazione associata, giusto? 591 00:32:39,750 --> 00:32:43,750 Quindi automaticamente quando si chiama questo indice qui, per esempio, o quando si 592 00:32:43,750 --> 00:32:49,930 chiamare questo nuovo libro, poi la vista, libri, nuova sta per essere chiamato. 593 00:32:49,930 --> 00:32:53,300 >> Così Rails fa tutto automaticamente per voi. 594 00:32:53,300 --> 00:32:59,420 Così ogni controller ha un associato e visualizzare tutti i modelli - 595 00:32:59,420 --> 00:33:01,970 qui ho uno, due, tre, quattro, cinque modelli. 596 00:33:01,970 --> 00:33:05,800 Ma questo è uno studente modello, così quelli sono le variabili che tutte le 597 00:33:05,800 --> 00:33:08,620 gli studenti hanno - localizzazione, data di nascita. 598 00:33:08,620 --> 00:33:11,270 Gli studenti sono un po 'di più complicato perché ogni studente ha 599 00:33:11,270 --> 00:33:15,400 altro metodo diverso associato ad esso. 600 00:33:15,400 --> 00:33:18,770 Ma questo è solo gestendo la tabella di tutte le 601 00:33:18,770 --> 00:33:21,980 studenti nel database. 602 00:33:21,980 --> 00:33:24,300 >> E, OK, l'installazione di Rails. 603 00:33:24,300 --> 00:33:27,710 Installare Rails, ad essere onesti, non è la cosa più semplice. 604 00:33:27,710 --> 00:33:32,980 Ma una volta passato tutto, è molto, molto facile. 605 00:33:32,980 --> 00:33:38,810 Quindi l'installazione di Rails, basta andare al sito web, rubyandrails.org / download 606 00:33:38,810 --> 00:33:41,510 e seguire le istruzioni riportate. 607 00:33:41,510 --> 00:33:42,700 Scarica tutto. 608 00:33:42,700 --> 00:33:46,600 E si può fare sia in Appliance, nel CS50 Appliance, il 609 00:33:46,600 --> 00:33:51,120 Di Windows, su Mac o qualsiasi operativa sistema di tua scelta. 610 00:33:51,120 --> 00:33:52,460 Ruby on Rails gira su tutto. 611 00:33:52,460 --> 00:33:56,680 >> Quote stai già installato Rubino se avete un Mac o - 612 00:33:56,680 --> 00:33:58,130 negli apparecchi credo Ruby è - 613 00:33:58,130 --> 00:34:00,940 Non ne sono sicuro. 614 00:34:00,940 --> 00:34:02,440 E poi basta installato questo software. 615 00:34:02,440 --> 00:34:07,190 E se si desidera creare un nuovo applicazione web, è sufficiente 616 00:34:07,190 --> 00:34:10,270 fare Rails, nuovo, blog. 617 00:34:10,270 --> 00:34:12,429 Rails, nuovi - 618 00:34:12,429 --> 00:34:13,310 Non lo so - 619 00:34:13,310 --> 00:34:15,050 il nome del tuo sito web. 620 00:34:15,050 --> 00:34:16,380 Ed è così semplice. 621 00:34:16,380 --> 00:34:19,060 >> E 'intenzione di creare tutte quelle file che ho appena mostrato. 622 00:34:19,060 --> 00:34:22,730 Ma il modello, la vista, e la controllore non stanno per essere 623 00:34:22,730 --> 00:34:24,330 ancora popolato. 624 00:34:24,330 --> 00:34:28,710 Stai solo andando ad avere per andare lì e popolare queste tre cartelle. 625 00:34:28,710 --> 00:34:32,840 Quindi le probabilità sono, si vuole creare un modello, per esempio, attuare una 626 00:34:32,840 --> 00:34:33,780 primo modello. 627 00:34:33,780 --> 00:34:40,440 Quindi, di nuovo, cercando sempre di mordere più piccoli bit di un problema alla volta. 628 00:34:40,440 --> 00:34:42,659 >> E poi diciamo, creare un modello per gli utenti. 629 00:34:42,659 --> 00:34:44,370 Questa è la prima cosa se avete gli utenti. 630 00:34:44,370 --> 00:34:48,440 Poi voglio creare un modello proprio come abbiamo mostrato qui. 631 00:34:48,440 --> 00:34:58,470 Rails, generare, il modello, l'utente, e quindi stringa-mail - abbiamo che qui. 632 00:34:58,470 --> 00:35:01,200 E basta creare quel modello, sì. 633 00:35:01,200 --> 00:35:05,030 Rails generare il modello e-mail Utente: string Password: string. 634 00:35:05,030 --> 00:35:09,650 >> E poi si crea un controller che si occupa con l'utente. 635 00:35:09,650 --> 00:35:12,790 Ed è possibile creare nuovi utenti e fare quel genere di cose. 636 00:35:12,790 --> 00:35:18,280 E poi si può passare alla creazione il resto del tuo sito web. 637 00:35:18,280 --> 00:35:22,470 Disinvolto, domande? 638 00:35:22,470 --> 00:35:23,230 Sì. 639 00:35:23,230 --> 00:35:24,480 >> AUDIENCE: [incomprensibile] 640 00:35:24,480 --> 00:35:27,430 641 00:35:27,430 --> 00:35:29,910 >> GABRIEL GUIMARAES: Sì, sì, sicuramente andare nella vista. 642 00:35:29,910 --> 00:35:31,290 Questa è una domanda molto buona. 643 00:35:31,290 --> 00:35:36,410 Quindi il panorama è quello che in realtà contiene il codice HTML. 644 00:35:36,410 --> 00:35:39,240 Quindi è ciò che gli utenti stanno andando a vedere. 645 00:35:39,240 --> 00:35:46,690 Ancora una volta, qui, questa è una esempio di una visualizzazione. 646 00:35:46,690 --> 00:35:52,040 Essa ha il codice HTML e Ruby codice allo stesso tempo. 647 00:35:52,040 --> 00:35:56,010 Quindi il codice Ruby è lì per mettere le cose dal database, per esempio, 648 00:35:56,010 --> 00:35:59,150 che sono stati caricati sul controller. 649 00:35:59,150 --> 00:36:04,240 Cosicché variabile @ libri, per esempio, ha tutti i libri e la tabella 650 00:36:04,240 --> 00:36:05,340 libri al database. 651 00:36:05,340 --> 00:36:08,680 Abbiamo fatto in modo che aveva nel controllore. 652 00:36:08,680 --> 00:36:10,250 >> E la vista - 653 00:36:10,250 --> 00:36:15,900 ciascuna delle pagine esterne tuo sito web è sta per avere una visualizzazione associata. 654 00:36:15,900 --> 00:36:21,762 Quindi, se si va alla home page, l' prima pagina, harvard2017.com. 655 00:36:21,762 --> 00:36:23,490 Che mostra una pagina. 656 00:36:23,490 --> 00:36:26,760 E poi si va a tagliare profilo. 657 00:36:26,760 --> 00:36:30,150 Che sta per andare a un controller che è un controller profilo. 658 00:36:30,150 --> 00:36:34,620 E il controllore profilo sta per darvi la vista di profilo. 659 00:36:34,620 --> 00:36:37,590 E la vista profilo sta a guardare un po 'come questo, ma sta andando a 660 00:36:37,590 --> 00:36:41,910 disporre di informazioni sull'utente, e non sui libri. 661 00:36:41,910 --> 00:36:46,840 >> Quindi è il codice HTML e CSS e di quelli cose che un utente vede 662 00:36:46,840 --> 00:36:49,680 con il codice Ruby - 663 00:36:49,680 --> 00:36:52,505 che in realtà consente di stampare le cose dal database. 664 00:36:52,505 --> 00:36:54,520 Che è più chiaro? 665 00:36:54,520 --> 00:36:55,080 Spero. 666 00:36:55,080 --> 00:36:58,066 >> PUBBLICO: Il codice HTML viene utilizzato per effettivamente rendere il sito web che la 667 00:36:58,066 --> 00:37:02,470 utente vede, ma il codice Ruby è ciò che rende il lavoro sito? 668 00:37:02,470 --> 00:37:06,500 >> GABRIEL GUIMARAES: Il codice Ruby viene convertito in HTML. 669 00:37:06,500 --> 00:37:09,420 Quindi, ciò che l'utente ottiene è solo HTML, OK? 670 00:37:09,420 --> 00:37:10,900 E 'solo HTML. 671 00:37:10,900 --> 00:37:18,740 Questo book.title sta per convertire in il valore di book.title in HTML, OK. 672 00:37:18,740 --> 00:37:23,080 Quindi questo è tutto nel server, e così questo dipende da quali libri ci sono 673 00:37:23,080 --> 00:37:24,410 nel server in questo momento. 674 00:37:24,410 --> 00:37:32,930 Ma ciò che il server avrebbe subito senso è solo il codice HTML, OK. 675 00:37:32,930 --> 00:37:36,720 >> Ma la vista dà solo il layout della ciò che l'HTML è stato andare a guardare come 676 00:37:36,720 --> 00:37:39,530 e quali le variabili stanno per essere. 677 00:37:39,530 --> 00:37:42,170 Questo tipo di un fuori stampa, OK. 678 00:37:42,170 --> 00:37:44,360 Queste cose ci sono fondamentalmente stampare outs. 679 00:37:44,360 --> 00:37:47,430 Stanno andando a stampare le variabili, OK. 680 00:37:47,430 --> 00:37:49,850 Così che cosa è solo HTML, quelli - 681 00:37:49,850 --> 00:37:51,390 autore, titolo, descrizione. 682 00:37:51,390 --> 00:37:53,540 Questo è contenuto statico. 683 00:37:53,540 --> 00:37:54,520 Questo non cambierà. 684 00:37:54,520 --> 00:37:56,700 Questo è il codice HTML semplicemente. 685 00:37:56,700 --> 00:37:59,080 Queste sono le stampe per le variabili - 686 00:37:59,080 --> 00:38:00,330 cose che dipendono. 687 00:38:00,330 --> 00:38:02,350 688 00:38:02,350 --> 00:38:03,600 Cool, altre domande? 689 00:38:03,600 --> 00:38:12,120 690 00:38:12,120 --> 00:38:12,600 Buono? 691 00:38:12,600 --> 00:38:13,080 Sì. 692 00:38:13,080 --> 00:38:15,720 >> PUBBLICO: Penso che stavi facendo tutto la redazione di un testo diverso 693 00:38:15,720 --> 00:38:16,920 programma di editing. 694 00:38:16,920 --> 00:38:19,520 Dovremmo anche scaricare questo? 695 00:38:19,520 --> 00:38:24,250 >> GABRIEL GUIMARAES: Sì, mi piace questo editor di testo chiamato TextMate. 696 00:38:24,250 --> 00:38:24,990 Ed è davvero buono. 697 00:38:24,990 --> 00:38:26,980 E 'adatto a Ruby. 698 00:38:26,980 --> 00:38:29,270 E i colori cose molto ordinatamente. 699 00:38:29,270 --> 00:38:34,770 Così TextMate, T-E-X-T. Vado mettere quella, aspetta - 700 00:38:34,770 --> 00:38:42,880 701 00:38:42,880 --> 00:38:45,720 >> Voglio dire, è possibile utilizzare gedit o tutto quello che vuoi. 702 00:38:45,720 --> 00:38:49,970 Ma questo è specifico per Mac, e questo è davvero bello perché mette tutti 703 00:38:49,970 --> 00:38:51,000 i file laggiù. 704 00:38:51,000 --> 00:38:53,620 E in Ruby on Rails, è necessario per passare file molto. 705 00:38:53,620 --> 00:38:55,890 Quindi è molte, molte file proprio passare da un file, saltare 706 00:38:55,890 --> 00:38:57,120 un file o l'altro. 707 00:38:57,120 --> 00:39:02,000 Quindi TextMate è molto buona, ma ci sono molti là fuori. 708 00:39:02,000 --> 00:39:03,250 Altre domande? 709 00:39:03,250 --> 00:39:08,680 710 00:39:08,680 --> 00:39:09,870 OK, sì? 711 00:39:09,870 --> 00:39:12,825 >> AUDIENCE: C'è un sviluppo mobile attraverso Ruby on Rails? 712 00:39:12,825 --> 00:39:15,640 713 00:39:15,640 --> 00:39:17,050 >> GABRIEL GUIMARAES: ho sentito parlare delle cose. 714 00:39:17,050 --> 00:39:19,550 Io non li ho usati. 715 00:39:19,550 --> 00:39:21,570 Si potrebbe ricercare più su quello. 716 00:39:21,570 --> 00:39:24,740 Io non so se c'è qualche buona cosa là fuori. 717 00:39:24,740 --> 00:39:29,980 718 00:39:29,980 --> 00:39:31,030 OK, sì? 719 00:39:31,030 --> 00:39:32,280 >> AUDIENCE: [incomprensibile] 720 00:39:32,280 --> 00:39:38,340 721 00:39:38,340 --> 00:39:40,550 >> GABRIEL GUIMARAES: Non Rails, Probabilmente matrice Ruby. 722 00:39:40,550 --> 00:39:44,270 723 00:39:44,270 --> 00:39:49,080 Aprire una finestra di terminale e tipo, "Ruby". 724 00:39:49,080 --> 00:39:52,030 Si ', probabilmente, e poi si semplicemente installare Rails. 725 00:39:52,030 --> 00:39:57,050 Ma se avete intenzione di installare il nuovo Rails 4.0, che consiglio vivamente, 726 00:39:57,050 --> 00:40:02,870 è necessario scaricare Rubino 2.0. 727 00:40:02,870 --> 00:40:04,530 Questo è il nuovo troppo. 728 00:40:04,530 --> 00:40:09,530 E le nuove Rails 4.0 ha qualcosa davvero cool che 729 00:40:09,530 --> 00:40:11,260 lo fa al patrimonio. 730 00:40:11,260 --> 00:40:12,810 Gestisce attività. 731 00:40:12,810 --> 00:40:18,860 Le attività sono ancora immagini, file CSS, e file JavaScript. 732 00:40:18,860 --> 00:40:24,060 Quindi, una cosa veramente pulito che Ruby on Rails fa per voi è tutto di coloro CSS 733 00:40:24,060 --> 00:40:26,980 i file che avete e tutto - 734 00:40:26,980 --> 00:40:32,420 si impacchetta proprio tutto su in uno file enorme, senza spazi o nulla, 735 00:40:32,420 --> 00:40:40,120 per minimizzare il tempo l'utente deve scaricare il codice dal server. 736 00:40:40,120 --> 00:40:47,780 >> Quindi quando vedete nel vostro computer, è andando ad avere come 15 file CSS. 737 00:40:47,780 --> 00:40:49,520 O molti, molti file CSS diversi. 738 00:40:49,520 --> 00:40:54,890 Ma alla fine della giornata, ciò Rotaie automaticamente fa per voi è che mette 739 00:40:54,890 --> 00:41:00,760 tutto insieme in un unico file di grandi dimensioni in modo che minimizza il tempo richiesta. 740 00:41:00,760 --> 00:41:02,630 Questo è davvero cool. 741 00:41:02,630 --> 00:41:02,940 Sì? 742 00:41:02,940 --> 00:41:04,190 >> AUDIENCE: [incomprensibile] 743 00:41:04,190 --> 00:41:13,910 744 00:41:13,910 --> 00:41:14,440 >> GABRIEL GUIMARAES: Esattamente. 745 00:41:14,440 --> 00:41:16,230 Quindi, l'integrazione di Google Maps. 746 00:41:16,230 --> 00:41:20,200 Questa è una API JavaScript di Google. 747 00:41:20,200 --> 00:41:23,750 Così ho appena andato al sito web di Google. 748 00:41:23,750 --> 00:41:29,950 Hanno questa API di Google Maps e ho scaricato il codice integrandolo 749 00:41:29,950 --> 00:41:31,610 nel mio punto di vista. 750 00:41:31,610 --> 00:41:35,490 Così che cosa dovevo fare lì è che ho bisogno di ottenere l' 751 00:41:35,490 --> 00:41:37,310 località dal database. 752 00:41:37,310 --> 00:41:38,990 Questo è stato fatto nel controller. 753 00:41:38,990 --> 00:41:40,950 Così sono andato al controllore - 754 00:41:40,950 --> 00:41:42,350 dove è il controller. 755 00:41:42,350 --> 00:41:44,330 Il controllore si presentava così. 756 00:41:44,330 --> 00:41:48,660 Hai tutte le posizioni del studenti, mettere tutto questo in un grande 757 00:41:48,660 --> 00:41:52,060 variabile, una grande lista, che ha tutte le posizioni. 758 00:41:52,060 --> 00:41:55,340 >> E in vista, perché il codice JavaScript API qualcosa nella 759 00:41:55,340 --> 00:41:55,800 visualizzare, giusto? 760 00:41:55,800 --> 00:42:00,440 Poiché JavaScript viene eseguito all'interno del codice HTML codice, che sta per essere inviato al 761 00:42:00,440 --> 00:42:01,710 macchina dell'utente. 762 00:42:01,710 --> 00:42:09,310 E in vista, ho caricato tutto questo informazioni nella API di Google. 763 00:42:09,310 --> 00:42:12,080 E ha fatto tutto questo per me, che è davvero cool. 764 00:42:12,080 --> 00:42:16,240 Ma se si desidera utilizzare le cose in back-end, ed è come una biblioteca, per 765 00:42:16,240 --> 00:42:18,720 esempio, ancora una volta - 766 00:42:18,720 --> 00:42:20,140 l'integrazione con Facebook. 767 00:42:20,140 --> 00:42:24,060 Questo è qualcosa che molti, molti, molte applicazioni utilizzano al giorno d'oggi. 768 00:42:24,060 --> 00:42:27,300 >> Quindi, avere il vostro integrazione con Facebook perché è molto più facile da solo 769 00:42:27,300 --> 00:42:30,450 effettuare il login con Facebook che per creare un conto e bla, bla, bla. 770 00:42:30,450 --> 00:42:35,120 Poi basta utilizzare un gioiello ed è come semplice come andare al file gioiello. 771 00:42:35,120 --> 00:42:39,350 File di Gem è un file chiamato file di gioiello in la directory di origine del vostro Ruby on 772 00:42:39,350 --> 00:42:40,370 Rails progetto. 773 00:42:40,370 --> 00:42:43,700 Basta andare lì e aggiungere nuovo gioiello. 774 00:42:43,700 --> 00:42:45,300 E si guarda su Google. 775 00:42:45,300 --> 00:42:46,520 Ci sono molte, molte, molte gemme. 776 00:42:46,520 --> 00:42:51,070 Ce n'è uno che fa specificamente questo per l'integrazione di Facebook. 777 00:42:51,070 --> 00:42:54,660 Io non sono sicuro di quello che il nome di essa. 778 00:42:54,660 --> 00:42:56,680 Basta Google e sei andare a trovarlo. 779 00:42:56,680 --> 00:42:57,930 OK, altre domande? 780 00:42:57,930 --> 00:43:01,110 781 00:43:01,110 --> 00:43:03,280 Impressionante, grazie per essere venuti. 782 00:43:03,280 --> 00:43:09,227