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 に答える