要表示組可以有多個用戶,並且用戶可以屬於多個組,我設置以下的關聯:Rails:爲什麼「has_many ...,:through => ...」關聯會導致「NameError:未初始化的常量...」
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
我在做什麼錯了?
謝謝!我有一個叫做'UsersGroup'的模型,看起來很奇怪。我不希望其中一個是複數,另一個是單數。也許我應該將模型重命名爲UserGroupPair,以便表名稱爲'user_group_pairs'。你怎麼看 ? –
當你有一個連接模型時,標準的做法是想出一個描述關聯的詞。例如,GroupMembership什麼的。只是爲了檢查,你確定你需要一個連接模型?如果連接不需要邏輯,那麼只需要一張表即可。 – Skilldrick
你的意思是模型名稱'GroupMembership'和表名'group_membership',即兩個單數?我不確定我是否理解你關於擺脫連接表的第二點。你能詳細說明一下嗎? –