创建新文件时出错

时间:2010-11-14 20:10:55

标签: ruby-on-rails

当我在irb中运行此代码时:

File.open('j1.txt','w') {|f| f.write("doc1223423")}

它成功运作。但是当我在控制器中的方法中执行相同操作时,会出现以下错误:

Errno::ENOENT (No such file or directory - file location as specified )

为什么会这样做以及如何解决?

2 个答案:

答案 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'只会打开一个用于编写(更新)的文件。

以下是一些可能有用的好例子: