mar*_*cgg 3 ruby ruby-on-rails 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
Run Code Online (Sandbox Code Playgroud)
如果我这样做,系统显示"否",然后包括正确显示的图像,因为/images/header.jpg存在.
我试过FileTest.exists?,FileTest.exist?,File.exists?,File.exist?似乎没有任何工作.
我究竟做错了什么 ?谢谢
Ric*_*and 14
我猜这是因为你问的是你的系统根目录下的目录"images"中是否存在"header.jpg"文件(在Windows上我认为是"c:\").尝试将完整路径(从文件系统根目录)放到"/ images"目录而不是URL路径.
特别是,正如@Brian所指出的,你应该使用:
FileTest.exists?(RAILS_ROOT + "/images/header.jpg") # < rails 3.0
FileTest.exists?(Rails.root + "/images/header.jpg") # >= rails 3.0
Run Code Online (Sandbox Code Playgroud)