2013-11-04 11 views
7

:私はちょうど新しいアプリを作成し、唯一持っているので名前はすでにRuby on Railsによって使用または予約されていますか?私は、次のコマンドを使用して、レールに新しいモデルを作成しようとしています

The name 'Education' is either already used in your application or reserved by Ruby on Rails. Please choose an alternative and run this generator again.

:それを実行している場合

rails generate model Education name:string 

それは次のエラーを返します。他の1つのモデルでは、アプリケーションでその名前は使用されていません.Railsがそのような名前を予約する理由を考えるのは難しいですか?

このエラーの原因と解決方法について考えてみましょうか?

(私は何か他のものに名前を変更しようとしていると、期待どおりに動作します。名前は本当に、その目的に合っているので、私は他の方法がない場合を除き、その名前を変更したくない!)

私はRuby 2.0.0とRails 4.0.0およびPostgreSQLを使用

+5

あなたはあなたのアプリケーション教育にも電話しましたか?すなわち、「新しい教育の軌道」 – engineersmnky

+0

はい。それが理由だと思いますか? – Severin

+2

です。私が受け入れることができる適切な答えを作るためのケア? – engineersmnky

答えて

20

競合する名前が作成されるため、アプリケーションと同じ名前のモデルを作成することはできません。あなたがアプリケーションすなわちrails new Educationを作成するときに、この名前のモジュールは、その後のファイルのようなconfig.ruroutes.rbenvironment.rbと、より多くので呼び出され

module Education 
    class Application < Rails::Application 
    #.... 
    end 
end 

次のようにEducationという名前のモジュールを作成します。したがって、同じ名前でモデルクラスを作成できた場合、ModelまたはModuleのどちらを呼び出すかはあいまいになります。

関連する問題