2010-11-24 38 views

Répondre

0

La réponse la plus simple et directe à votre question est:

posts.first.class.name 

ce qui équivaut à l'écriture:

posts.[0].class.name 

Vous pouvez le faire parce que votre requête renverra un résultat dénombrable. (ActiveRecord :: Relation implémente l'interface Enumerable de Ruby).

- Scott

+0

Hey Croplio, 4 mois se sont écoulés. Cette réponse a-t-elle résolu votre problème? – Scott

+0

Si 'posts' ne retourne aucune ligne, alors' posts.first' sera nul et cela ne marchera pas. –

3

L'attribut #klass de ActiveRecord::Relation retourne la classe modèle sur lequel la relation a été construite:

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

Pour obtenir le nom de la classe:

arel.klass.name 

Testé ActiveRecord 4.2.4