2014-01-10 4 views

ответ

0

Это возвращает массив с именами классов (т. Е строки):

ActiveRecord::Base.descendants.map(&:to_s).select {|x| x.match('::')} 

в то время как это будет возвращать реальные объекты класса:

ActiveRecord::Base.descendants.select {|x| x.name.match('::')} 
+0

Имейте в виду, что все модели должны уже загружены, чтобы это работало. Довольно часто это не так ... (рейк-задачи, инициализаторы, патчи для обезьян). – phoet

+0

К сожалению, нет лучшего способа сделать это. Но да, это действительно работает. – swapab

Смежные вопросы