Нам нужно убедиться, что ссылки для скачивания работают. И поскольку файлы довольно большие, нам нужно убедиться, что у нас нет устаревших, бесполезных файлов, которые находятся в нашем каталоге загрузок. Итак, у нас есть страница управления загрузками, которая проверяет, что в каждой базе данных file_name есть файл с таким же именем в каталоге загрузки. Затем страница проверяет, что каждый файл в нашем каталоге имеет имя файла в нашей базе данных.
в контроллере:
@documents = Document.find(:all, :order => "section asc, sub_section asc, position asc, name asc")
@files = Dir.glob("public/downloads/*").sort
ПЕРВАЯ ПРОВЕРКА: на мой взгляд, для проверки наличия файла для каждой записи документа в базе данных:
<% @documents.each do |d| -%>
<% if @files.include?("public/downloads/" + d.file_name)
clr = "Green"
else
clr = "Red"
end %>
... color coded print routine ...
<% end %>
ВТОРАЯ ВАЛИДАЦИЯ: на мой взгляд, чтобы убедиться, что каждый файл имеет запись документа в базе данных:
<% @files.each do |f| -%>
<% str = f.gsub(/^.*\//, '')
if @documents.include?(str)
clr = "Green"
else
clr = "Red"
end %>
... color coded print routine ...
<% end %>
с моим небольшим списком тестовых документов, имена напечатанных файлов базы данных точно совпадают с именами файлов, напечатанными из нашего каталога загрузки. однако включающий тест для второй проверки не работает. я не смог понять почему.
спасибо!