[英]ruby : NameError: uninitialized constant
我有以下问题
我在用户和角色模型之间具有以下关联
# 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
我应该怎么做才能克服这个问题?
在关联定义中明确指定类名称
has_many :memberships, :class_name => "Membership"
has_many :roles , :through => :memberships
通常,如果遵循关联的命名约定,则不需要它。 可能是因为您为模型指定了名称空间。
好的,我发现了问题……完全是我的错。 在Membership
,
belongs_to :user
belongs_to :role
我省略了冒号。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.