2011-01-27 6 views
0

の部分文字列を作成します。iは、次のしている私の見解では、文字列

<% @files.each do |f| -%> 
    <% str = f.split("#{RAILS_ROOT}/public/downloads/") %> 
    <% =str% ><br> 
<% end -%> 

出力は「/ /公共/ダウンロード」が付け加えされている各ファイル名。私は数多くの機能を試しましたが、それを取り除くために機能する機能を見つけられないようです。

ありがとうございました。

+0

何@files配列で構成されていますか? – Eimantas

答えて

1

これは動作するはずです:

<% @files.each do |f| -%> 
<% str = f.gsub(/^.*\//, '') %> 
<% =str% ><br> 
<% end -%> 
+0

hi psyho。これは、ファイル名の前に "/ public/downloads /"を含む同じ結果を生成します。ありがとう。 – Jay

+0

今、regexpを更新した後はどうですか? – psyho

+0

は完全に機能します。 gsubで読んで、それが自分自身を動作させることができませんでした。あなたが供給した正規表現で...私はそれが今どのように動作するのか理解していると思います。ありがとう! – Jay

2

basenameを試しましたか?

Pathname.new(str).basename.to_s 

更新:

<% @files.each do |f| -%> 
    <% str = Pathname.new(f).basename.to_s %> 
    <%= str %><br> 
<% end -%> 
+0

は非常に多くのバリエーションを試しましたが、「ArrayをStringに変換できません」というこのパターンや他のパターンに変更できます:newstr = Pathname.new(str).basename.to_s – Jay

関連する問題