Lo strumento più potente messo a disposizione da ruby on rails per velocizzare e facilitare al programmatore lo sviluppo di applicazioni rails è lo Scaffolding,per la generazione automatica del codice.
Sarà possibile definire alcune specifiche sulla base di dati e il compilatore si occuperà poi di generare il sorgente per l’esecuzione di operazioni CRUD (create, read, update & delete) a carico dei record manipolati.
Il comando per la creazione della risorsa “New” dovrà basarsi sull’istruzione “rails generate scaffold” seguita dal nome della stessa e dai campi relativi ad essa; una volta aperto il terminale Prompt dovremo quindi digitare quanto segue:
rails generate scaffold New autore:string titolo:string testo:text
L’esecuzione dell’istruzione porterà alla visulizzazione del seguente output:
invoke active_record create db/migrate/20120425095451_create_news.rb create app/models/new.rb invoke test_unit createtest/unit/new_test.rb createtest/fixtures/news.yml route resources :news invoke scaffold_controller create app/controllers/news_controller.rb invoke erb createapp/views/news createapp/views/news/index.html.erb createapp/views/news/edit.html.erb createapp/views/news/show.html.erb createapp/views/news/new.html.erb createapp/views/news/_form.html.erb invoke test_unit createtest/functional/news_controller_test.rb invoke helper createapp/helpers/news_helper.rb invoketest_unit create test/unit/helpers/news_helper_test.rb invoke assets invoke coffee createapp/assets/javascripts/news.js.coffee invoke scss createapp/assets/stylesheets/news.css.scss invoke scss identical app/assets/stylesheets/scaffolds.css.scss
Si tenga presente che quella che si sta effettuando non è la procedura per il popolamento di un database, anche se la natura delle operazioni svolte potrebbe farlo pensare, ma di una struttura di file.
Uno Scaffold può essere cancellato del tutto attraverso una semplice istruzione basata sul comando “rail destroy scaffold” seguita dal nome della risorsa che si vuole eliminare; nel nostro caso l’istruzione richiesta sarà per esempio:
rails destroy scaffold New