Я был ответ, как прибегая к помощи, чтобы показать все модели Ralis, сочетание ответов здесь было утомительным, THX.
так вот сочетание решений, которое работает даже для таблиц STI на Rails
#Since Rails doesn't load classes unless it needs them, you must read the models from the folder. Here is the code
Dir[Rails.root.to_s + '/app/models/**/*.rb'].each do |file|
begin
require file
rescue
end
end
models = ActiveRecord::Base.subclasses.collect { |type| type.name }.sort
models.each do |model|
print model
print ' '
end
Этот код работает для меня, за исключением того, что иногда я получаю предупреждения при повторном требовании файла модели, который уже был задан ранее. Я смог разрешить это, используя expand_path, см. Нижнюю часть http://devblog.avdi.org/2009/10/22/double-load-guards-in-ruby/ – DSimon
Небольшая коррекция, которую вы не против , RAILS_ROOT был изменен на Rails.root – Rubyrider