Jump to content

Scaffold (programming): Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
No edit summary
Line 12: Line 12:
===Dynamic scaffolding===
===Dynamic scaffolding===
When the line <code>scaffold :''model_name''</code> is added to a [[Ruby on Rails#Controller|controller]], Rails will automatically generate all of the appropriate data interfaces at run time. Since the API is generated on the fly, the programmer cannot easily modify the interfaces generated this way. Such a simple scaffold is often used for [[prototyping]] applications and entering test data into a database.
When the line <code>scaffold :''model_name''</code> is added to a [[Ruby on Rails#Controller|controller]], Rails will automatically generate all of the appropriate data interfaces at run time. Since the API is generated on the fly, the programmer cannot easily modify the interfaces generated this way. Such a simple scaffold is often used for [[prototyping]] applications and entering test data into a database.
Note, as of Rails2.0, dynamic scaffolding is no longer supported
Note, as of Rails2.0, dynamic scaffolding is no longer rejected


===Scaffold generation===
===Scaffold generation===

Revision as of 06:54, 22 September 2010

Scaffolding is a meta-programming method of building database-backed software applications. It is a technique supported by some model-view-controller frameworks, in which the programmer may write a specification that describes how the application database may be used. The compiler uses this specification to generate code that the application can use to create, read, update and delete database entries, effectively treating the template as a "scaffold" on which to build a more powerful application.

Scaffolding is an evolution of database code generators from earlier development environments, such as Oracle's CASE Generator, and many other 4GL client-server software development products.

Scaffolding was popularized by the Ruby on Rails framework. It has been adapted to other software frameworks, including Django, Monorail (.Net), KumbiaPHP, CodeIgniter, Symfony, Yii, CakePHP, Model-Glue, Grails, Catalyst, Seam Framework, ASP.NET Dynamic Data and ASP.NET MVC Framework's Metadata Template Helpers.

Scaffolding in Ruby on Rails

There are two ways to produce a scaffold in Ruby on Rails: dynamic scaffolding and scaffold generation.

Dynamic scaffolding

When the line scaffold :model_name is added to a controller, Rails will automatically generate all of the appropriate data interfaces at run time. Since the API is generated on the fly, the programmer cannot easily modify the interfaces generated this way. Such a simple scaffold is often used for prototyping applications and entering test data into a database. Note, as of Rails2.0, dynamic scaffolding is no longer rejected

Scaffold generation

The programmer may also run an external command to generate Ruby code for the scaffold in advance: rails generate scaffold model_name. The generate script will produce files of Ruby code that the application can use to interact with the database. It is somewhat less convenient than dynamic scaffolding, but gives the programmer the flexibility of modifying and customizing the generated APIs.

See also

External links