Scaffolding works for small sites. It works for the simple cases. When you
start getting into situations where you have lots of relationships, multiple
models per form, etc, it's not going to cut it and you're better off just
writing it yourself because it's not that hard.
Scaffolding works best for small sites, though it works fine for large
sites (using autocomplete for large tables). It's true that it
doesn't work with complex things like multiple models per form, but
lots of relationships isn't a problem. Scaffolding is never going to
maximize the productivity when using a form, only when building it.
Scaffolding doesn't solve hard problems, only tedious ones.
THe main problem I have with scaffolding is that people see it and expect to
be able to write big applications because it looks so easy. There are tons
of things in the scaffolding that you just wouldn't want in any production
application, like the loops within loops, the lack of eager loading, and the
pagination that really doesn't work with large resultsets.
True, scaffolding makes things look easy. That's because using
scaffolding is easy, and if it solves your problems, there isn't a
reason to do anything more difficult.
It's also true that scaffolded code generally performs poorly.
However, it can handle eager loading, and performance of the
scaffolded forms themselves may not be an issue. It can be used as an
administrative front end to a high traffic site (particularly if
updates aren't that frequent), though I would recommend custom coding
any forms that themselves get a lot of traffic.
To me, scaffolding is something the newbies should use to see how things
work in Rails. I think it's a neat excercise to see people writing their
own scaffolding extensions, but I've seen time and time again that generic
solutions just require too much work to modify to meet the current
situations. That's why I like the fact that scaffolding in Rails does very
Generated scaffolding is useful as a teaching tool, but I find method
based scaffolding makes for easier maintenance. I find that if
scaffolding doesn't meet your current needs, it's better to extend
it's capabilities than it does repeating yourself making small
modifications to a whole bunch of forms. In fact, I think the more
models you have, the more scaffolding is beneficial. Writing or
modifying CRUD forms for a 3 model site isn't bad, but it's pretty
mind numbing for an 100 model site.
Again, I think a lot of it depends on your needs. If you are writing
a complex web app with a lot of specialized forms, then it won't help
much. If you are looking for an administrative front end to a content
site, it does the job quite well.