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. 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:datetime

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 no support for more subtle fixes.

Neither of these is a fun way to fix a typo, so remember: when you first generate scaffolding, it’s ...

Get Learning Rails: Live Edition 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.