Rails:为什么“has_many …,:through => …”关联导致“NameError:uninitialized constant …”

为了表示一个组可以有多个用户,并且一个用户可以属于多个组,我设置了以下关联:

class Group  :users_groups end class User  :users_groups end class UsersGroups < ActiveRecord::Base belongs_to :user belongs_to :group end 

但是,当我键入:

 Group.find(1).users 

我明白了:

 NameError: uninitialized constant Group::UsersGroup 

我究竟做错了什么 ?

class UsersGroups应该是class UsersGroup 。 ActiveRecord模型是单数 – 表格是复数。

ActiveRecord尝试将名称单一化,但您的类实际上名为UserGroups 。 将其重命名为UserGroup 。 模型是单一的。

我认为将UserGroups类的名称更改为UserGroup

另外,请注意模型的文件名也必须是单数forms。 在这种情况下, app/models/user_group.rb