2012-02-28 10 views
1

ActiveRecord:アプリケーション内ですでに使用されている名前。ここではどこですか?私は足場を生成しようとするが、私は次のエラーが表示され、それを生成しています

rails generate scaffold foo 
     invoke active_record 
The name 'Foo' is either already used in your application or reserved by Ruby on Rails. Please choose an alternative and run this generator again. 

は、この名前は私のアプリケーション内で使用されている場所を正確に知るためにそこにコマンドですか?

+0

を殺す私は実際に命名問題がどこから来ているのを認識しています。私が探しているのは、名前が使われている場所を私に指示するコマンドです。私は自分自身が大規模なアプリケーションとレーキコマンドで問題に走っているのを見ることができます。状況が起こったときに何かが非常に役に立ちます。 – rudolph9

答えて

-1

これは、指定された可能性の1つだけです! Fooは予約語です。 Rubyは既にモデル/モジュール名として使用されていない単語も予約しています。例えば、Configurationという名前のモデルを作成することもできません。

+0

はFooの予約語です。レールごとに次のdocが予約されており、fooはここでは言及されていませんhttp://wiki.rubyonrails.org/rails/pages/reservedwords –

+0

これは公式なリストでも完全なリストでもありません。ユーザーが作成したモデルでない場合は、予約語にする必要があります。 – davidb

+0

質問は名前 'Foo'に関するものではなく、問題を抽象化してより広いオーディエンスに関係することを疑うことを可能にする一般的な一般的な例でした。 – rudolph9

2

私は、オブジェクト/クラス/モジュールのファイルやソースを見つける方法はないと思います。また、レールにはオープンクラスのコンセプトがあるため、多くのファイルでクラスを定義したり洗練されているため、同じものを追跡することはできません。名前はルビーマインを使用し

Module.constants.include? "Foo" 
+0

これは疑問に答えるものではありませんが、間違いなく有用な答えです。 – rudolph9

0

に従うことによって、任意のオブジェクトのために存在しているかどうかをチェックすることができます

しかし、あなたがこれを行うことができますいくつかの方法があります。メソッドや変数などが使われている場所をすべて見つける "find usages"コマンドがあります。あなたのケースでは便利な "宣言へのジャンプ"があります。何かが定義されている場所にジャンプします。 (クラス、モジュール、変数、メソッド)。強力な検索機能もあります。この場合、パス内の検索により、アプリケーション全体(使用されている外部の宝石を含む)を検索することができます。大文字と小文字を区別して検索するだけで、クラス名やモジュール名などを出力することができます。

0

Szuper tricky!私にとって、モデル名はSpringキャッシュシステムのメモリにスタックされていました。 springプロセスを終了して解放する必要がありました。

この探しコマンドを試みる:あなたはその春のコメントが表示される場合は

Running via Spring preloader in process 57104 
Expected string default value for '--serializer'; got true (boolean) 
    invoke active_record 
The name 'Admin' is either already used in your application or reserved 
by Ruby on Rails. Please choose an alternative and run this generator 
again. 

、あなたのプロセスや殺害に春を探してみてください:

ps -ef | grep spring

IDを検索します:

501 54701 30654 0 1:43PM ?? 0:04.83 spring app | server | started 8 mins ago | development mode

501 30654 1 0 Tue03PM ttys000 0:03.82 spring server | server | started 142 hours ago

kill 30654

関連する問題

 関連する問題