我在这里找到了一些关于 File.exists 的帖子?在 Rails 应用程序中,但尝试解决方案没有帮助,我是新手,所以我一定是在做一些愚蠢的事情。
我正在使用:
- 轨道 3.2.11
- ruby 1.9.3
- 下面提到的文件的回形针
- ActiveAdmin 上传下面提到的文件
- 在开发环境中工作
- 未预编译的 Assets
我有一个模型“style”,它有一个图像附件,我可以渲染图像
<%= image_tag(@style.style_image) %>
而且效果很好。
简而言之,我想检查文件图像是否确实存在于它应该位于的文件夹中 - 我不想使用 @style.style_image.present? 来检查图像,因为那只是检查数据库记录。我想使用 File.exist? 来查看是否确实存在用于 @style.style_image 的文件。
所以在我的 View 文件中,我有代码
<% 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 几个月,所以我可能遗漏了一些愚蠢的东西。
最佳答案
我认为您需要 @style.style_image.path
而不是 .url
。
打印出来以确保。
关于ruby - Rails File.exist?文件存在时产生错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15423605/