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