Не удается найти список потомков, использующих Rake - PullRequest
0 голосов
/ 15 сентября 2011

Где определены задачи Rake, такие как :environment?Есть ли что-то более легкое, чем :environment, которое могло бы дать мне доступ к подклассам ActiveRecord из задачи Rake?

Я пытаюсь получить список моделей в задаче Rake.Вот что у меня есть:

namespace :mine do
    namespace :ar do
        desc "my custom"
        task :show_sub => [:environment] do
            puts "Total:#{ActiveRecord::Base.descendants}"
            ActiveRecord::Base.descendants.each do |cls|
                puts cls
            end
        end
    end
end

Однако все, что я когда-либо получаю, это [], хотя у меня определены 3 модели.

РЕДАКТИРОВАТЬ: я использую Rails 3.1.

1 Ответ

1 голос
/ 15 сентября 2011

Самый легкий способ, который я могу себе представить, - это написать задачу rake, которая перебирает все .rb файлы в текущем каталоге и подкаталоги внутри вашего проекта (на случай, если они спрятаны где-то странно),и просто выводит количество файлов, содержащих строку < ActiveRecord::Base (пробелы необязательны, конечно).

Один шаблон регулярного выражения, который соответствует этому:

^class\s[a-zA-Z0-9_]+\s?<\s?ActiveRecord::Base

... так что он совпадает только со строками, которые включают явное объявление класса и не начинаются с хеш-метки # (т. е. это не комментарий)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...