我正在尝试检查我的 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/