为了表示一个组可以拥有多个用户,并且一个用户可以属于多个组,我设置了以下关联:
class Group < ActiveRecord::Base
has_many :users_groups
has_many :users, :through => :users_groups
end
class User < ActiveRecord::Base
has_many :users_groups
has_many :groups, :through => :users_groups
end
class UsersGroups < ActiveRecord::Base
belongs_to :user
belongs_to :group
end
然而,当我输入:
Group.find(1).users
我明白了:
NameError: uninitialized constant Group::UsersGroup
我做错了什么?
答案 0 :(得分:29)
class UsersGroups
应为class UsersGroup
。 ActiveRecord模型是单数 - 表格是复数。
答案 1 :(得分:1)
ActiveRecord尝试将名称单一化,但您的类实际上名为UserGroups
。将其重命名为UserGroup
。模型是单一的。
答案 2 :(得分:1)
我认为将用户组类更改为用户组
答案 3 :(得分:-1)
此外,请注意模型的文件名也必须是单数形式。
在这种情况下,app/models/user_group.rb