質問: ### 前提・実現したいこと 指定したディレクトリ配下を削除してディレクトリを再作成したい ### 詳細 ・実行前にtmp/test/inputとtmp/test/outputが存在 ・両ディレクトリ配下にはディレクトリとファイルが数階層に存在 ・実行のタイミングでtmp/test配下のディレクトリとファイルを全て削除して ・もう一度tmp/test/inputとtmp/test/outputの両ディレクトリを作成したい ### 発生している問題・エラーメッセージ ``` File exists @ dir_s_mkdir - /vagrant/app/tmp/test/input ``` ### 該当のソースコード ``` def initialize_directory FileUtils.rm_rf Dir.glob Rails.root.join("tmp", "test", "*") Dir.mkdir Rails.root.join("tmp", "test", "input") Dir.mkdir Rails.root.join("tmp", "test", "output") end ``` ### 試したこと コンソール上で一行ずつ実行すると期待する動きになります。 画面からこのメソッドを呼び出すと、上記のエラーが発生してしまいます。 ### 補足情報 Rails 4.2.8 ruby 2.3.3p222
回答: 削除できるまでループさせることで解決しました。ご回答ありがとうございました。 ``` def initialize_directory while Dir.exist?(Rails.root.join("tmp", "test", "input")) || Dir.exists?(Rails.root.join("tmp", "test", "output")) do FileUtils.rm_rf Dir.glob Rails.root.join("tmp", "test", "*") end FileUtils.makedirs [Rails.root.join("tmp", "test", "input"), Rails.root.join("tmp", "test", "output")] end ```