The problem with this isn't that the Rails way might not always really be the best way. The problem is that sometimes, the Rails way isn't even relevant. Sometimes what you want to do is neither what Rails grudgingly permits nor what it actively encourages.

I see this a lot with JavaScript. Now it's entirely possible that I just need to step up my RJS game, and if so, then all these criticisms of Rails could in fact be entirely meaningless. Take it with a grain of salt. But in the past six months I've worked on five Rails sites professionally, and in the past year, God only knows how many for fun. I don't think I've worked on a single Rails project yet where I didn't at least once have to add a Rails form handler or JavaScript shortcut to a template just so I could grab the output via view source, copy it, paste it back into the template, and then modify it to do what I really wanted it to do in the first place.

Rails is a fantastic technology, but the frustration here is that, having completely blown all its predecessors away, you kind of expect it to continue kicking ass all over the place, and this cut-and-paste workflow is not exactly crane style kung fu. If you're watching a Bruce Lee movie, and Chuck Norris takes over at the end, it's not exactly an improvement.

This isn't necessarily a design flaw in Rails, either. There's more than one type of Web app to build, and Rails is designed around a certain category of Web app. If you want to do something different with it, you can, it just won't necessarily be easy. At Canada on Rails, I heard DHH say nearly exactly those words, and he was telling the truth.

I'm not really sure what the solution is here. It's probably either a massive review of RJS, or -- perhaps more likely -- some custom code, like a plugin or something, which allows you greater flexibility and specificity on the JS side of things. I don't know if that's going to happen. I don't even know how I'd do it. The big learning things on my plate right now are Scheme, Seaside, and Rails 1.2. That's certainly enough to keep me busy.

I don't think I've worked on a single Rails project yet where I didn't at least once have to add a Rails form handler or JavaScript shortcut to a template just so I could grab the output via view source, copy it, paste it back into the template, and then modify it to do what I really wanted it to do in the first place.