2010-11-24 10 views

Antwort

0

Die einfachste und direkte Antwort auf Ihre Frage ist:

posts.first.class.name 

Welche äquivalent zu schreiben ist:

posts.[0].class.name 

Sie können dies tun, weil die Abfrage ein zählbare Ergebnis zurück. (ActiveRecord :: Relation implementiert Rubys Enumerable-Schnittstelle).

- Scott

+0

Hey Croplio, 4 Monate sind vergangen. Hat diese Antwort Ihr Problem gelöst? – Scott

+0

Wenn 'posts' keine Zeilen zurückgibt, dann ist' posts.first' gleich null und dies wird nicht funktionieren. –

3

Das #klass Attribut ActiveRecord::Relation gibt die Modellklasse, auf dem die Beziehung aufgebaut wurde:

arel = User.where(name: "fred") 
arel.klass # User 

der Klasse des Namens zu erhalten:

arel.klass.name 

Geprüft ActiveRecord 4.2.4