0

メインアプリにユーザーテーブルが必要なRailsエンジンを自分で構築しました。エンジン内のモデルの 1 つと、メイン アプリ内のユーザー テーブルとの間の関係を作成できる必要があります。これはただ言うよりも複雑belongs_to :userですか?Userオブジェクトが nil であるというエラーが表示されますが、コンソールを使用すると正しいユーザーが返されます。私の推測では、Rails は私のbelongs_to :user呼び出しがエンジンと同じ名前空間 (MyEngine::User) にあるユーザーのクラスを意味すると想定していました。User クラスがエンジンではなくメイン アプリの名前空間にあることを明示的に指定する方法はありますか?

4

3 に答える 3

11

関連付けで、名前空間を含むクラス名を明示的に設定します。

belongs_to :user, :class_name => "MyEngine::User"
于 2012-07-29T08:14:11.553 に答える
4

エンジンについてはよくわかりませんが::、ルート名前空間を参照するために使用するので、使用できる::Userと思います

于 2012-07-29T07:59:13.893 に答える
1

エンジンは、beens_to :user と言うだけで、デフォルトで MainApp のユーザー クラスを認識することがわかりました。私は何か間違ったことをしていました:/。

于 2012-08-02T00:55:26.550 に答える