2009-04-21 15 views
3

私のレールアプリケーションにファイルが存在するかどうかを確認しようとしています。 私はWindows XPでruby 1.8.6とrails 2.1.2を実行しています。FileTest.exists? ruby on rails with issue

だから、問題は、FileTest.exists?メソッドが機能していないようです。私は、システムが「なし」と表示され、その後/images/header.jpgが存在するため、正しく表示される画像が含まれていることを行う場合

if FileTest.exists?("/images/header.jpg") 
     render :text => "yes" 
else 
     render :text => "no <img src='/images/header.jpg' />" 
end 

:私はこのポイントにコードを単純化しています。

私はFileTest.existsを試しましたか?、FileTest.exist ?, File.exists ?, File.exist?何も動作していないようです。

私は間違っていますか? ありがとう

答えて

14

あなたのシステムのルートディレクトリから "images"というディレクトリに "header.jpg"というファイルが存在するかどうかを尋ねているので、私は推測しています。 :\ ")。フルパス(ファイルシステムのルートから)をURLパスではなく "/ images"ディレクトリに置いてみてください。特に

は、@Brianで指摘したように、あなたが使用する必要があります:呼び出しが存在する前に

FileTest.exists?(RAILS_ROOT + "/images/header.jpg") # < rails 3.0 
FileTest.exists?(Rails.root + "/images/header.jpg") # >= rails 3.0 
+0

あなたのコメントとBrianの両方を使って動作しました。 私は今:FileTest.exists?(RAILS_ROOT + "/ public/data/songs /" + recording.file_name)を除いて正常に動作しています。 – marcgg

3

はあなたがチェックしているファイル名にRAILS_ROOTを追加しますか?

+0

あなたの答えを私の中に埋め込んでもらえますか? –