如何建立典型的用户HABTM角色关系

时间:2011-07-14 06:57:33

标签: ruby-on-rails devise relational-database has-and-belongs-to-many cancan

我对此很新,我正在使用cancan + devise为我的用户身份验证。但是,我不确定建立典型用户HABTM角色关系意味着什么,我也不了解HABTM关系是什么。

任何人都可以解释得非常好,还是指向一个好的教程或示例?

2 个答案:

答案 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.rolesRole.first.users之类的关联。

您的问题还有couple Railscasts

答案 1 :(得分:3)

Ruby on Rails指南是一个很好的起点here this教程正是你想要的