2014-01-24 4 views
0

У меня есть скрипт, который я хотел бы проверить в рельсах консолиDebugging в Рельсы консоли

Gem.find_files("models/*.rb").each do |f| 
    filename = File.basename(f, '.*') 
    class_name_symbol = filename.classify.to_sym 
    autoload class_name_symbol, "models/#{filename}" 
end 

, что я хотел бы сделать, это распечатать результаты в консоли, но может только получить как вывод массив с помощью

Gem.find_files("models/*.rb") 

, который возвращает этот

["/home/richardlewis/.rvm/gems/[email protected]/bundler/gems/blogModels-8360dfc861ad/lib/models/portfolio_sector.rb", "/home/richardlewis/.rvm/gems/[email protected]/bundler/gems/blogModels-8360dfc861ad/lib/models/post.rb", "/home/richardlewis/.rvm/gems/[email protected]/bundler/gems/blogModels-8360dfc861ad/lib/models/image.rb", "/home/richardlewis/.rvm/gems/[email protected]/bundler/gems/blogModels-8360dfc861ad/lib/models/message.rb", "/home/richardlewis/.rvm/gems/[email protected]/bundler/gems/blogModels-8360dfc861ad/lib/models/sector.rb", "/home/richardlewis/.rvm/gems/[email protected]/bundler/gems/blogModels-8360dfc861ad/lib/models/portfolio.rb", "/home/richardlewis/.rvm/gems/[email protected]/bundler/gems/blogModels-8360dfc861ad/lib/models/category.rb"] 

советы оценили

После использования ответа выход

models/portfolio_sector 
models/post 
models/message 
models/sector 
models/portfolio 
models/category 
=> ["/home/richardlewis/.rvm/gems/[email protected]/bundler/gems/blogModels-8360dfc861ad/lib/models/portfolio_sector.rb", "/home/richardlewis/.rvm/gems/[email protected]/bundler/gems/blogModels-8360dfc861ad/lib/models/post.rb", "/home/richardlewis/.rvm/gems/[email protected]/bundler/gems/blogModels-8360dfc861ad/lib/models/image.rb", "/home/richardlewis/.rvm/gems/[email protected]/bundler/gems/blogModels-8360dfc861ad/lib/models/message.rb", "/home/richardlewis/.rvm/gems/[email protected]/bundler/gems/blogModels-8360dfc861ad/lib/models/sector.rb", "/home/richardlewis/.rvm/gems/[email protected]/bundler/gems/blogModels-8360dfc861ad/lib/models/portfolio.rb", "/home/richardlewis/.rvm/gems/[email protected]/bundler/gems/blogModels-8360dfc861ad/lib/models/category.rb"] 

не знает, почему массив в конце?

Edit:

Скрипт должен принимать каждый элемент в массиве и автозагрузке файл, содержащийся в моделях/# {имя файла}. Я хотел бы распечатать все пути модели/# {filename} в консоли, чтобы убедиться, что они верны -

+0

Просто вставьте 'puts' в нужное место. См. Мой ответ. –

+0

, потому что он возвращает перечислитель из методов '# each', поэтому вы получаете массив –

ответ

2
Gem.find_files("models/*.rb").each do |f| 
    filename = File.basename(f, '.*') 

    # So, instead of passing this filename to autoload, you print it. Or do both. 
    puts "models/#{filename}" 

    # class_name_symbol = filename.classify.to_sym 
    # autoload class_name_symbol, "models/#{filename}" 
end && nil # suppress return value from `each` 
+0

спасибо :) высоко ценим – Richlewis

+0

Отладочная печать - очень полезная техника. :) –

+0

да, кажется, так, я собираюсь опубликовать вывод в моем вопросе, почему массив появляется в конце? – Richlewis