Было дело, надо в одном проекте выводить список файлов лежащих в определенной директории, с возможностью их скачать, как говориться в натуральную величину. Это был мой первый кусочек кода написанный на ruby, а поскольку rails и их идеология для меня тогда еще были не вновинку, то реализовывал я это в самой view.
Надеюсь, этот код будет полезен тому человеку, который вот уже 3 месяца ходит на мой блог из поиска Google с запросом “ruby on rails jpg из папки считать”.
Кусок который исполняется, но не отображается. Все наши файлы лежат в папке public/files. Красиво было бы его вынести в соответсвующий контроллер в нужный метод.
<%
vendors = Hash.new { |hash, key| hash[key] = Array.new }
Dir.open('public/files').each do |file|
# Заполняем хэш vendors файлами из директории,
# перебирая по очереди каждый из них
next if file[-4..-1] != '.pdf'
next if file =~ /^..?$/
file.gsub!('.pdf', '')
f = file.split(' ')
# Разбиваем имя файла, получая необходимые логические части
# Прозводитель и Модель.
# Заполняем хэш полученными значениями.
model = f[-1] # Пробельчик чик-чик
vendor = f[0..-2].join(' ')
vendors [vendor] << model
end
%>
Кусок, который отвечает за вывод на экран. Тут уж и форматирование можно подставить, и оформить как следует.
<% for v in vendors.keys.sort do %>
<!-- Впечатываем производителя-->
<h2><%= v ></h2>
<ul>
<% for m in vendors[v].sort do %>
<!-- Заполняем список названиями моделей-->
<li>
<a href="/files/<%= v + ' ' + m + ' .jpg' %>" target="_blank"><%= m %></a>
</li>
<% end %>
</ul>
<% end %>
В ходе написания этого поста, обнаружил, что отвалился плагин Markdown Extra, который у меня раньше изолировал трансляцию всего чего и почему-то в рамках <code> пришлось переменять всякие < на < вручную. Коллеги-программеры, если у кого есть удобное решение для wordpress с оформлением кусков кода, поделитесь в комментариях.