I was wondering about the implementation of design patterns in ruby rails code. For instance, apart from the framework following mvc seperation, are other design patterns such as singleton, observer, strategy, composite, visitor etc used in a typical ruby rails app?

I'm a fairly competent php programmer, and am really starting to develop well using OO styes & design patterns. Naturally, i want to progress in my abilities, and ruby is an option on my horizon.

Php takes a lot of flak for being so disorganised: the fact that you can implement ActiveRecord in rails in less than 10 lines of code indicates to me that the design patterns have already been made for you - all you need to do is use them. If thats the case, do ruby programmers need to "know" how to use design patterns- will programming an app in ruby rails make me a sloppy programmer, with a shallow understanding of OO design?

Although php is a rough language, the fact that it is so un-object oriented has meant that i've had to learn OO principles, and become a better programmer as a result. I don't just know what ActiveRecord is; i know how to implement my own ActiveRecord solution if i need to.

Much in the same a lot of .net coders use intrinsic controls without ever really knowing how they work, I was just wondering, from a personal development point of view, what language would further my understanding of design patterns and OO design.