#ruby-on-rails #file
#ruby-on-rails #файл
Вопрос:
У меня есть набор статических PDF-файлов. Я хочу перечислить их на странице rails со ссылками на них.
Что мне нужно прямо сейчас, так это как обрезать /public в начале пути, чтобы ссылка действительно работала.
Текущий код:
<h1>Listing letters</h1>
<table>
<ul>
<% @files = Dir.glob("public/files/*.pdf") %>
<% for file in @files %>
<% new_file = file.to_s %>
<% new_file = new_file.chomp("public/") %>
<li><%= link_to 'Letter', new_file %></li>
<% end %>
</ul>
</table>
Однако ссылки по-прежнему поступают как
http://localhost:3000/public/files/document.pdf
когда для работы они должны быть
http://localhost:3000/files/document.pdf
Ответ №1:
<% Dir["public/files/*.pdf"].each do |file| %>
<li><%= link_to 'Letter', file[//.*/] %></li>
<% end %>
Комментарии:
1. Намного проще, чем то, что я пытался. Спасибо. Вы только что сэкономили мне еще час 🙂
Ответ №2:
Метод chomp используется для удаления чего-либо в конце строки 😉 Вместо этого используйте gsub.
new_file.gsub!('public', '')
или
new_file = new_file.gsub('public', '')
Комментарии:
1. Становится все ближе! Однако выполнение <% new_file = new_file. удаление «public/» %> выдает мне строку с удаленной любой из этих букв в пути (т.Е. fes / docment.pf)
2. Хм, верно, извините за это, попробуйте gsub. Добавлен пример.