ruby - Rails File.exist?文件存在时产生错误

标签 ruby ruby-on-rails-3

我在这里找到了一些关于 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/

相关文章:

ruby-on-rails - SSL_connect returned=1 errno=0 state=SSLv3 读取服务器证书 B : certificate verify failed

ruby - 尝试在 ruby​​ 脚本上运行 ruby​​-debug 时如何消除此错误

ruby-on-rails-3 - Mac 上的开发模式是瘦还是 unicorn ?

ruby-on-rails - 如何使用acts_as_taggable_on设置 'maximum length validation for each tag'?

ruby-on-rails-3 - 需要 Google-Maps-for-Rails Direction Wiki 说明

Ruby:找不到临时目录

ruby - 如何在 ubuntu 上找到 ruby​​ 和 bundle 的安装路径?

mysql - 我似乎无法让 rails server 运行

mysql - 编写将日期时间变为 null :false to true 的数据库迁移

ruby-on-rails - Rails 3 路由问题