11

ここで File.exists に関するいくつかの投稿を見つけましたか? Railsアプリで解決策を試してみても解決しませんでした。私はかなり新しいので、ばかげたことをしているに違いありません。

私は使用しています:

  • レール 3.2.11
  • ルビー1.9.3
  • 下記ファイルのペーパークリップ
  • 以下のファイルをアップロードする ActiveAdmin
  • 開発環境での作業
  • プリコンパイルされていないアセット

モデル「スタイル」があり、画像が添付されているため、画像をレンダリングできます

<%= image_tag(@style.style_image) %>

そしてそれはうまく動作します。

要するに、ファイル画像が実際にあるべきフォルダにあるかどうかを確認したい - @style.style_image.present を使いたくない? dbレコードをチェックするだけなので、画像をチェックするため。File.existを使用したいですか? @style.style_imageのファイルが実際にあるかどうかを確認します。

私のビューファイルには、コードがあります

<% if File.exist?(@style.style_image.url) %>
The image exists.
<% else %>
The image is not here.
<% end %>

そして、ページをロードすると、常に「画像はここにありません」と出力されます。すぐ下に image_tag を使用して画像を表示しているので、実際に画像がそこにあることがわかります。

私も試してみました

<% if File.exist?(Rails.root + @style.style_image.url) %>

運がない。FileTest.exist?、FileTest.exists?、および File.exists? も使用してみました。しかし、イメージが確実にそこにある場合、誰も私に真実を教えてくれません。

足りないものはありますか?ご指導いただければ幸いです。私は Ruby と Rails を始めてまだ数か月しか経っていないので、何かばかげたことを見逃している可能性があります。

4

2 に答える 2

9

@style.style_image.pathの代わりに欲しいと思います.url

印刷して確認しましょう。

于 2013-03-15T02:17:22.920 に答える
5

ディスク上の Web URL やファイルを扱うときはいつでも、どの「パス」を使用しているかに注意し、コードにファイルの場所を伝えるか、ブラウザにそれを要求するかを指示するかどうかを明確にしておく必要があります。同じファイル。

Web サーバーは、セキュリティが非常に高いため、多くの理由でユーザー/ブラウザーから OS のファイル構造を隠します。たとえば、URL はドライブのルートではなく、サーバーに対して相対的です。

あなたが遭遇したことは非常に一般的であり、Web 用のプログラミングに取り組んでいるすべての人がおそらく数回同じことに遭遇した、または遭遇する可能性が非常に高いです。

于 2013-03-15T02:56:44.580 に答える