Rails: Assoziationen erweitern

Man lernt nie aus, vor allem nicht, wenn man grade kopfüber in Rails abtaucht. Hier mal wieder ein Feature, was absolut Code Candy-Prädikat würdig ist: ActiveRecord-Assoziationserweiterungen.

Als wenn die verfügbaren Assoziationen has_one, has_many, belongs_to und has_and_belongs_to_many nicht schon genug wären, lassen sie sich durch das Anhängen eines Blocks erweitern: Alle in diesem Block definierten Methoden beziehen sich auf die Assoziation (genauer: Sie werden Methoden der Assoziation).

Nehmen wir als Beispiel einen Blog-Autor (User), welcher mehrere Artikel hat, die wiederum eine bestimmte Anzahl an Kommentaren haben. Was sich standardmäßig (im Controller) folgendermaßen abfragen lässt

lässt sich bei öfter vorkommenden Abfragen viel praktischer so verpacken:

Die Abfrage dazu wäre:

Die Logik bleibt im Modell, ist somit für alle Instanzen verfügbar und der Code ist 1A lesbar - so nice!

iOS app for GitHub

iOctocat

ist GitHub für die Hosentasche - deine Projekte und das was dort passiert immer dabei mit deinem iPhone und iPod Touch.
Die App ist