从引擎模型的主应用程序创建与模型的belongs_to关系



我为自己构建了一个Rails引擎,它要求主应用程序有一个Users表。我需要能够在我的引擎中的一个模型和主应用程序中的Users表之间创建关系。这比仅仅说belongs_to :user更复杂吗?我收到一个错误,说User对象为nil,但当我使用控制台时,它会返回正确的用户。我的假设是Rails假设我的belongs_to :user调用意味着与引擎位于同一命名空间中的User类,即MyEngine::User。我有没有办法明确指定User类在主应用程序的命名空间中,而不是在引擎的命名空间中?

在关联中显式设置类名,包括名称空间:

belongs_to :user, :class_name => "MyEngine::User"

我对引擎了解不多,但您使用::来引用根命名空间,所以您可以使用::User我猜

引擎默认情况下只需说出belongs_to:user即可识别MainApp的用户类。我做错了别的事:/。

最新更新