That's the problem with frameworks and libraries. You have to know the project ahead of time and know the capabilities of the system. If you need to deviate from it in any way, it gets messy.

I remember trying Ruby on Rails. It's quite terrible, in my opinion. It makes easy stuff easier and slightly complicated to hard stuff near impossible. Of course, if you're a developer trying to learn RonR, you already know how to do the easy stuff by hand.