ruby-on-rails - 文件测试存在吗? ruby on rails 问题

标签 ruby-on-rails ruby file

我正在尝试检查我的 Rails 应用程序中是否存在文件。 我在 Windows XP 上运行 ruby​​ 1.8.6 和 rails 2.1.2。

所以,问题是 FileTest.exists?方法似乎不起作用。我已经将代码简化到这一点:

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

如果我这样做,系统会显示“否”,然后包含正确显示的图像,因为/images/header.jpg 存在。

我试过 FileTest.exists?, FileTest.exist?, File.exists?, File.exist?似乎没有任何效果。

我做错了什么? 谢谢

最佳答案

我猜这是因为您在询问文件“header.jpg”是否存在于系统根目录(在 Windows 上我假设是“c:\”)的目录“images”中).尝试将完整路径(从文件系统根目录)放到“/images”目录而不是 URL 路径。

特别是,正如@Brian 所指出的,您应该使用:

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

关于ruby-on-rails - 文件测试存在吗? ruby on rails 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/773098/

相关文章:

ruby-on-rails - Rails 中的嵌套资源

ruby-on-rails - 带 Letsencrypt 的 Heroku - 无法使用插件

ruby - 如何在 Ruby Tk 中绑定(bind)按键序列?

linux - 比较文件内容并删除较短的文件

java - 如何在android中找到可以用MediaPlayer播放的文件

ruby-on-rails - ruby rails : Passing argument to singleton

ruby-on-rails - 如何通过自定义方法对表格进行排序

Ruby 系统退出状态常量

ruby-on-rails - 当我发出 ajax 请求时,如何防止浏览器屏幕滚动到顶部?

java - URI 与文件性能