2017-12-12 7 views
0

にファイルパスの一部を削除するには、次の文は、このリストを作成する例は、私は、変数</p> <p>として配列を受けているのですルビー

["https://stackoverflow.com/a/b/01_Sources/02_Transferred/06_CPAS/Redbull/from_MediaHouse/Transcripts/MI201711200143.xlsx", "https://stackoverflow.com/a/b/01_Sources/02_Transferred/06_CPAS/Redbull/from_MediaHouse/Transcripts/MI201703030110.pdf"] 

です:

<%= var(file_list_array).map{|file| "<li>#{File.basename(file)}</li>"}.join("\n")%> 

  • MI201711200143。 xlsx
  • MI201703030110.pdf
  • 次の文は、このリスト

    <%= var(file_list_array).map{|file| "<li>#{file}</li>"}.join("\n")%> 
    

  • /a/b/01_Sources/02_Transferred/06_CPAS/Redbull/from_MediaHouse/Transcripts/MI201711200143.xlsx
  • /A/B/01_Sourcesを作成/ 02_Transferred/06_CPAS /レッドブル/ from_MediaHouse /転写物/ MI201703030110.pdf
  • しかし、私は本当に好きだろうか:

  • /Redbull/from_MediaHouse/Transcripts/MI201711200143.xlsx
  • /Redbull/from_MediaHouse/Transcripts/MI201703030110.pdf私はそれを得るために変更する必要が何
  • +0

    保存したいパスの部分は何ですか? –

    答えて

    1

    ファイルパスの配列が配列内にあるとします。

    ​​

    これは

    また、あなたがちょうどあなたの表示コードにそれを置くことができリスト前処理をしたくなかった場合は、「レッドブル」ディレクトリの下にあるものは何でもしてそれぞれの項目に置き換えられますが、それはようになりますあなたが表示ロジックを送信するために必要なものについてはあまり明確ではありません。

    <%= var(file_list_array).map{|file| "<li>#{file.gsub(/.*(\/Redbull\/.*)/, $1)}</li>"}.join("\n")%> 
    
    +0

    2番目の例では、ベース名が単にファイル名(パスなし)であり、パスが役に立たないので、単に ""

  • #{gsub' * and * 'basename'} file.gsub(/.*(\/Redbull\/.*$)/、 '\ 1'))}
  • "'私がgsubsでこのようなグローバルを使用しようとするたびに、私はいつもバグに終わってしまいます....何かがうまくいかず、グローバルを設定せず、古い値を使用して頭痛があります。 –

    +0

    2番目の例のニースキャッチ。私は2つのerbの標本を混合した – Jared

    0

    あなたは"06_CPAS"から分割したいと仮定すると、この

    file_list_array[0].split("06_CPAS")[1] 
    

    を試してみてください。このように変数として渡すこともできます

    関連する問題