当我在irb中运行此代码时:
File.open('j1.txt','w') {|f| f.write("doc1223423")}
它成功运作。但是当我在控制器中的方法中执行相同操作时,会出现以下错误:
Errno::ENOENT (No such file or directory - file location as specified )
为什么会这样做以及如何解决?
答案 0 :(得分:6)
解决。 我指定的上述文件位置不存在。 我正在做这样的事情
File.open ("#{RAILS_ROOT}/jatin/j.txt", 'w+') do |f|
f.write("blah")
end
但是目录/ jatin /不存在,所以解决方案是首先创建目录然后创建文件。
Dir::mkdir("#{RAILS_ROOT}/jatin")
感谢您的帮助。
答案 1 :(得分:2)
尝试将'w'
打包到'w+'
- 这会创建一个新文件,'w'
只会打开一个用于编写(更新)的文件。
以下是一些可能有用的好例子: