簡體   English   中英

ruby:NameError:未初始化的常量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM