2013-09-26 5 views
0

Я переместился из Rails3 в Rails4. Следующий код возвращает Array в Rails3, но в Rails4 он возвращает строку с недопустимым символом.Как получить все файлы в каталоге изображений Rails4 в массиве

Dir.glob("app/assets/images/flowers/*") 

пример вывода в Rails3

["app/assets/images/flowers/rose.png", "app/assets/images/flowers/lilly.png"] 

выход в Rails4

"\x04\b[dI\"8app/assets/images/flowers/rose.png\x06:\x06ETI\"4app/assets/images/flowers/lilly.png" 

Как получить тот же формат, что и в Rails3?

+0

вы пробовали с 'Dir.entries ("приложение/активы/изображения/цветы")'? – rmagnum2002

+0

Да, это выбрасывает ошибку «Нет такого файла или каталога» – Achaius

ответ

0

Dir не имеет отношения к Rails - это чистый класс Ruby. Here - это ссылка на API. Согласно API, он должен всегда возвращать массив. Я предполагаю, что вы что-то испортили в своей Ruby-установке, когда вы обновляли Rails 3 до 4.

Я думаю, что лучшим вариантом будет чистая установка рубинов/рельсов. Вы также можете попробовать запустить Dir.glob() из консоли IRB и rails, чтобы увидеть, где происходит ошибка; и начните оттуда.

1

попробовать этот

files = Dir.glob("app/assets/images/flowers/*").map do |f| File.basename f end 
Смежные вопросы