Generating HTML Forms with Scaffolding

Although this application is approaching the point beyond which much generated code becomes more of a hassle than a help, it makes sense to create one last round of scaffolding, replacing the application from the previous chapter. After this, we’ll work within the same application for a while, as this kind of tearing down and rebuilding is only a good idea at the very, very beginning of a project.

To get started, create a new application. Move or rename the old guestbook application to get it out of the way, and then run rails guestbook. In Heroku, just create a new application. Then, run the following clunky mess from the command line at the top level of the newly created application:

script/generate scaffold Person name:string secret:string country:string
email:string description:text can_send_email:boolean graduation_year:integer
body_temperature:float price:decimal birthday:date favorite_time:time

In Heroku, you’ll select Generate from the gear menu and enter all of that except for the script/generate. This kind of long list of data structures in the scaffolding is annoying. It’s hard to type, and what’s worse, if you find that you made a mistake after you’ve already modified the generated code, you have a painful choice.

You can either rerun the scaffolding generation and lose all your changes to the logic, or you can modify the migration, the model, and the views by hand. Rails scaffolding generators just overwrite the old code—there’s ...

Get Learning Rails now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.