Как создать несколько ссылок из одного массива строк Rails - Ruby - PullRequest
1 голос
/ 18 октября 2019

Я знаю, это может показаться простым, но я пытался создать несколько ссылок из этого массива в Rails

array = ["/uploads/content/attachment/folder/file1.pdf/file2.pdf/file3.pdf"]

Я хочу создать ссылку для file1 и другую для file2 и так далее.

Я пытался использовать метод объединения и разделения, image_tag, content_tag и много-много разных циклов в Rails, но каждый из них заканчивается, как ссылка выше.

Ответы [ 2 ]

0 голосов
/ 18 октября 2019

Вопрос не ясен.

Я предполагаю, что массив будет выглядеть так:

array = [
  "/uploads/content/attachment/folder/file1.pdf/file2.pdf/file3.pdf",
  "/uploads/content/attachment/folder/file12.pdf/file23.pdf/fildf34.pdf",
  "/foo/boo/folder/file1.doc/file2.docx/file11.pdf"
]

Он разбивает ссылки для folder/

links = array.map{ |a| a.split('folder/') }.flat_map do |path, files|
  files.split('/').map{ |file| path + "folder/" + file }
end

p links
#=> [
      "/uploads/content/attachment/folder/file1.pdf",
      "/uploads/content/attachment/folder/file2.pdf",
      "/uploads/content/attachment/folder/file3.pdf",
      "/uploads/content/attachment/folder/file12.pdf",
      "/uploads/content/attachment/folder/file23.pdf",
      "/uploads/content/attachment/folder/fildf34.pdf",
      "/foo/boo/folder/file1.doc",
      "/foo/boo/folder/file2.docx",
      "/foo/boo/folder/file11.pdf"
    ]
0 голосов
/ 18 октября 2019

Примерно так, если я правильно понял:

array = ["/uploads/content/attachment/folder/file1.pdf/file2.pdf/file3.pdf"]
base = "https://www.example.com/" #the first part of the link, that's same for all links

links = array.first[1..-1].split("/").map{|a| base + a}
puts links
#=>  "https://www.example.com/uploads",
#    "https://www.example.com/content",
#    "https://www.example.com/attachment",
#    "https://www.example.com/folder",
#    "https://www.example.com/file1.pdf",
#    "https://www.example.com/file2.pdf",
#    "https://www.example.com/file3.pdf"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...