2009-08-13 13 views
2

名前がUserの2つの異なるクラスがある場合、FooModuleに1つ、app/models/user.rbに他のモデルがありますが、正しいものを使用していることを確認するにはどうすればよいですか?Ruby on Railsでのモデルの完全修飾名は何ですか?

編集: FooModule::User私に間違いなく正しいものを教えてください。

私は何だっ尋ねることを意図していた:ApplicationControllerFooModuleが含まれている場合は、Userまたは::Userはまだ私を をapp/models/user与えるだろうか?あなただけのユーザーを使用する場合

答えて

6

一般フルネーム、FooModule ::ユーザーと::ユーザーを使用してそれらを参照してください、それはあなたがFooModule内にある場合を除き、あなたは、::ユーザを意味すると仮定しなければなりません。いずれにしても、FooModule :: Userまたは:: Userを使用して確認してください。

+0

これは、モジュールがActiveRecordモデルと同じ名前、つまり 'Foo :: User'と' :: Foo'の場合には動作しないようです。 ':: Foo.new'を呼び出そうとすると、' Foo:Module'に対して ''未定義メソッド\ 'new 'というエラーが返されます。 – Chloe

関連する問題