0

我已经为自己构建了一个 Rails 引擎,它要求主应用程序有一个用户表。我需要能够在我的引擎中的一个模型和主应用程序中的用户表之间创建关系。这比说简单belongs_to :user吗?我收到一个错误,指出该User对象为零,但是当我使用控制台时,它会返回正确的用户。我的假设是 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

原来引擎默认情况下通过说belongs_to :user 来识别MainApp 的用户类。我做错了其他事情:/。

于 2012-08-02T00:55:26.550 回答