Ответ 1
class UsersGroups
должен быть class UsersGroup
. Модели ActiveRecord являются единственными - таблицы являются множественными.
Чтобы выразить, что группа может иметь несколько пользователей, а пользователь может принадлежать нескольким группам, я устанавливаю следующие ассоциации:
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
Что я делаю неправильно?
class UsersGroups
должен быть class UsersGroup
. Модели ActiveRecord являются единственными - таблицы являются множественными.
ActiveRecord пытается развить имя, но ваш класс на самом деле называется UserGroups
. Переименуйте его в UserGroup
. Модели сингулярны.
Я думаю, что измените имя класса UserGroups на UserGroup
Кроме того, обратите внимание, что имя файла модели также должно быть в единственной форме.
В этом случае app/models/user_group.rb