「はじめてのRuby on Rails3」関連トピック:筆者のうっかり報告 "Can't initialize a new Rails application"
「はじめてのRuby on Rails3」(工学社刊、ISBN978-4-7775-1563-9)の関連トピックです。
サポートページはこちらです。
ズバリ結論から報告します
最近、Ruby on RailsでRaisアプリケーションを作成中に、奇妙なトラブルに遭遇しましたので、ご紹介します。
原因から申しますと、なんらかのミスで、予期しないところにRailsプロジェクトのフォルダやファイルが繰り広げられてしまうことがあります。
これが、「ホームフォルダ」上で、かつそれに気付かない場合、以下のように困ったことになります。
「rails new」が効かないエラー?
筆者がある日、Rails操作でいろいろ実験を行っているうちに、突然「rails new」コマンドが受け付けられなくなりました。以下のようなエラーが出ます。
Can't initialize a new Rails application within the directory of another, please Type 'rails' for help.
なぜかホーム・フォルダに散らかっていた
やがて、原因が、すでに上記に申し上げた問題だとわかりました。
あれこれの実験中、なんらかの操作ミスで、ホームフォルダの中に直接、Railsプロジェクトの中身が作成されてしまっていたのです。
図1を見てください。「apps」「lib」「config」などのフォルダ及び「Gemfile」「Rakefile」などのファイルは、Railsプロジェクトに作成されるものです。それが、堂々とホームフォルダに鎮座ましましていたのです。
図1 ホームフォルダになぜかできていたRailsプロジェクトのフォルダ・ファイル
隠しファイルも見つけ出して削除
なお、図1では、「.(ドット)」のついた隠しファイルも表示させています。これらも、削除しなければなりません。
それには、「ファイルの拡張子を表示させる」のによく使う「フォルダと検索のオプション」で、図2のように「隠しファイルや隠しフォルダを表示する」を一時的に有効にする必要があります。
図2 隠しファイルやフォルダも表示させて掃除しないと
隠しファイルや隠しフォルダは、えてしてシステムやアプリケーションに関わる重要なものですから、削除は、他の用途のものを消さないように、慎重に行う必要があります。筆者の場合、ファイルの更新日時を調べて、最近の同じ時刻に同時に更新されている一連のものに目星をつけて消しました。また、幸い以前に成功していた他のRailsプロジェクトがあったので、それと比較して何を削除すればいいかわかりました。
そして、作業が終わったら、再び隠しファイルは非表示に設定しておきました。いつ、「うっかり消す」ミスをするか、わかりません。
何ともお恥ずかしい
以上、大変お恥ずかしい話ですが、インターネット上で検索してみるとこのエラーについてのQ&Aが結構見つかったので、もしかしたらお悩みの方もいるかと思い、ここに報告しました。
それらの質問はみんな、「ます、あなたがRailsプロジェクトを作ろうとしているフォルダを、キレイにしなさい」というアドバイスをもらっていました。
しかし、まさか今回の私の場合、ホームフォルダそのものが「ヨゴレて」いたとは思いませんでした。それでは、ホームフォルダ内のどこにRailsプロジェクトを作ろうとしても、「すでにあるRailsアプリケーションのフォルダの中に作ろうとしている」ことになってしまうわけです。
それにしても、こんな大量のフォルダが、自分の意図に反してホームフォルダに作成されていたのに気付かないとは、私などマルウェアの格好の標的ですね。反省至極です。