Rails生成多个级别的新目录

时间:2013-07-25 10:15:37

标签: ruby-on-rails ruby dir

我已经构建了这个生成excel文档的小应用程序。我正在尝试创建一个目录来粘贴它。这些文档的构建方式取决于人们选择的@agency。所以我使这个方法返回路径,因为路径在几个地方使用。

def reportsheet_dir
  file_path = "#{Rails.root}/public/reportsheets/#{@agency.downcase.gsub("_","")}"
end

在创建文档的方法的开头,我有这个方法,据说可以构建目录,但它似乎正在工作

Dir.mkdir(reportsheet_dir) unless File.exists?(reportsheet_dir)

我一直在努力。这个 我得到了

Errno::ENOENT at /addons/agency_report_builders 
No such file or directory -/Users/fortknokx/Work/toolkit/public/reportsheets/empowerlogicbuilder

我认为它因为它的多层深?因为必须公开/ reportsheets/agency_name/file_name。我可以去制作文件夹,但我想每次都制作目录,因为可以随时制作新的代理商。这有可能吗?

1 个答案:

答案 0 :(得分:1)

查看FileUtils.mkdir_p()

http://ruby-doc.org/stdlib-1.9.3/libdoc/fileutils/rdoc/FileUtils.html#method-c-mkdir_p

它将以递归方式创建不存在的目录。 Dir.mkdir不会。