Как найти имя класса модели по его значению - PullRequest
0 голосов
/ 31 января 2012

У меня есть объект ресурс с вложениями в качестве связанного объекта.Когда я вызываю resource.attachments , он показывает пустой массив [], что означает, что у ресурса нет вложений, но я хочу получить объект или имя класса вложений.Обратите внимание, что вложение не является вложенным ресурсом класса resource , но связано через ассоциацию habtm.

Ответы [ 2 ]

1 голос
/ 31 января 2012

Вы можете использовать ActiveRecord :: Reflection для получения ассоциаций:

 Resource.reflect_on_all_associations

OR

 Resource.reflect_on_all_associations(:has_and_belongs_to_many)

Чтобы получить все связанные имена классов:

 Resource.reflect_on_all_associations.collect!(&:name)

Приветствие.

1 голос
/ 31 января 2012

Вы можете вызвать .name для класса объекта:

resource.attachments[n].class.name

Обратите внимание, что это чистый рубин, и он не имеет ничего общего с рельсами и хабтом.

Кстати, вы не можете вызывать .class.name для своего пустого массива, у вас должно быть несколько объектов.

...