我对此很新,我正在使用cancan + devise为我的用户身份验证。但是,我不确定建立典型用户HABTM角色关系意味着什么,我也不了解HABTM关系是什么。
任何人都可以解释得非常好,还是指向一个好的教程或示例?
答案 0 :(得分:16)
HABTM意味着拥有并属于许多人。你基本上需要一个表作为中间人来跟踪多个id(称为直通表)。当引用为典型用户HABTM角色关系时,它们实际上意味着将存在User
模型,Role
模型,用户表,角色表和roles_users表。不要忘记添加HABTM - roles_users - 表。典型设置如下:
class User < ActiveRecord::Base
has_and_belongs_to_many :roles
end
class Role < ActiveRecord::Base
has_and_belongs_to_many :users
end
然后,您可以使用正常说法User.first.roles
和Role.first.users
之类的关联。
您的问题还有couple Railscasts。
答案 1 :(得分:3)