Search code examples
rubyfileutils

Ruby FileUtils.mkdir_p is only creating parent directories


I have a controller in Rails, with an action that is meant to create a new directory.

This action should create the directory "/public/graph_templates/aaa/test". However, it leaves off the final directory "test". Why is this only creating parent directories?

  def create_temporary_template
    dir = File.dirname("#{Rails.root}/public/graph_templates/aaa/test")
    FileUtils.mkdir_p dir
  end

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


Solution

  • Because you use dir = File.dirname("#{Rails.root}/public/graph_templates/aaa/test"),

    then the dir is "#{Rails.root}/public/graph_templates/aaa".

    You could just pass the path to FileUtils.mkdir_p.

      def create_temporary_template
        dir = "#{Rails.root}/public/graph_templates/aaa/test"
        FileUtils.mkdir_p dir
      end