0

我有以下问题

我在用户和角色模型之间有以下关联

# User
has_many :memberships
has_many :roles , :through =>  :memberships

# Role
has_many :memberships
has_many :users , :through =>  :memberships

我有桥接会员资格,你可以猜到它有

# Membership
belongs_to user
belongs_to role

问题是当我尝试创建新用户时,我有这个方法,我在 before_create 中调用它

before_create :build_role

def build_role
  memberships.build
end

它给了我

未初始化的常量 User::Membership

我应该怎么做才能克服这个?

4

2 回答 2

2

在关联定义中明确指定类名

has_many :memberships, :class_name => "Membership"
has_many :roles , :through =>  :memberships

如果您遵循关联的命名约定,通常不需要它。这可能是因为您的模型已命名空间。

于 2013-09-17T13:29:36.873 回答
1

好的,我发现了问题……完全是我的错。中Membership,应该是

belongs_to :user
belongs_to :role

我省略了冒号。

于 2013-09-17T14:10:37.350 回答