Для просмотра папок файловой системы из браузера в RoR

#ruby-on-rails #ruby #hyperlink #filesystems #directory

#ruby-on-rails #ruby #гиперссылка #файловые системы #каталог

Вопрос:

Я хотел бы иметь ссылку в моем браузере, которая при нажатии открывает папку в файловой системе. Я не хочу, чтобы это загружалось, а только для просмотра. Возможно ли это в Ruby? Какую команду можно использовать? Помогите!

Ответ №1:

Да, это возможно. Вы можете использовать Dir класс для получения содержимого каталога (курсив мой):

Объекты класса Dir являются потоками каталогов, представляющими каталоги в базовой файловой системе. Они предоставляют множество способов составления списка каталогов и их содержимого. Смотрите также File .

а затем обычные механизмы Rails для отображения этих данных пользователю.

Комментарии:

1. Не могли бы вы, пожалуйста, пояснить? Я новичок в RoR

Ответ №2:

Если вы имеете в виду на сервере, а не на компьютере пользователя:

 Dir.foreach("/path/to/directory") { |file|
  puts file
}
  

То же самое можно проделать и с Dir#glob , за исключением того, что для этого также потребуется шаблон подстановки:

 Dir.glob("/path/to/directory/*") { |file|
  puts file
}
  

Очевидно puts , что это не будет сокращено в Rails, но вы поняли идею.

Комментарии:

1. Не могли бы вы, пожалуйста, пояснить? Я новичок в RoR.

2. Когда вы выводите что-либо в Rails, вы делаете это с помощью файла шаблона (или вручную отправляя какой-либо другой ответ). Используя puts , просто выводит вывод на консоль, а не отправляет его в браузер (в отличие от того, что делает PHP). Вам придется начать с чтения руководства по Rails, поскольку там есть некоторые базовые элементы MVC, которые вам обязательно нужно понять, прежде чем вы сможете их использовать.

Ответ №3:

Обратите внимание, что вы можете просто вставить ссылку на вашу локальную файловую систему. Например,

 <a href="/home/user/foo">open foo</a>
  

дает ссылку на /home/user/foo на вашем компьютере.

Ответ №4: