Una piccolissima app per RailsGirls Roma 2014
Usa versione vecchia di rails. Ci sono buchi di sicurezza, non usare senza portare a rails 5.2.x
tramite il generator degli scaffold:
rails generate scaffold Quiz subject question:text image_url --stylesheet-engine=css --javascript-engine=js
rake db:migrate
Gia' fa parecchie cose! - Vediamo un po' la struttura dell'applicazione!
E' vero! Vediamo come farla visualizzare; Questo ci da modo di parlare dell'html
Creiamo un model per le risposte: Answer.
rails generate model Answer text:string correct:boolean
Parliamo delle associazioni. Un quiz ha molte domande, e le domande appartengono ad un quiz. Modifichiamo quindi le classi generate e la migration. Ora possiamo giocare con la console e aggiungere risposte ai quiz
Nessuno! Aggiungiamo delle validazioni. Le validazioni sono (parte di) quello che in linguaggio serio si chiama "business logic" - anzi a essere precisi business rules (l'ho saputo ieri sera!)
Prima correggiamo l'errore di sintassi che avevo fatto nel passo precedente sulle validazioni
Dopodiche'.. Mi sembra una richiesta ragionevole! Per far questo, usiamo delle feature di rails che rendono piuttosto facile il tutto. Ma comunque e' il passo piu' lungo fatto finora! Ma prima parliamo un po' del controller. Iniziamo a dire al model che accetta attributi annidati; poi nella form di quiz aggiungiamo la f.fields_for... ; Nel controller dichiariamo che quiz accetta anche questi attributi, aggiungendoli ai quiz_params (qui si potrebbe parlare di sicurezza?); Infine Vorremmo che le risposte siano mostrate anche nella show del quiz, renderando @quiz.answers
Potremmo anche mettere tutto dentro allo stesso controller, ma il modo pulito e' invece quello di creare un nuovo controller; Per ora e' prevedibile che si possano fare due cose: visualizzare una domanda a caso, o rispondere a una domanda.
rails generate controller FrontEnd question answer
Poi facciamo come dice: http://guides.railsgirls.com/app/ (a meno della parte dopo , che non ci serve)