6

我对此很新,而且我正在为我的用户身份验证使用cancan + devise。但我不确定设置典型用户HABTM角色关系的意义,也不了解HABTM关系是什么。如何设置一个典型的用户HABTM角色关系

任何人都可以很好地解释它或指向一个很好的教程或示例吗?

回答

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

还有一个coupleRailscasts在您的问题。

+0

你如何创建users_roles表? – Vasseurth

+5

'rails g migration add_users_roles_table' – recursive

+0

对不起,请尽快输入,用以下信息编辑上述内容:[gist](https://gist.github.com/1082098)。然后运行'rake db:migrate'。这应该做到这一点。 – recursive

3

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

+1

我正在使用第二个教程,但它只是说,'设置HABTM关系'并不说明如何 – Vasseurth

+2

http://mikewilliamson.wordpress.com/2010/07/02/rails-has_and_belongs_to_many/ - 简单的教程上habtm – Bohdan

+1

大部分有一个UsersHaveAndBelongToManyRoles迁移,你如何生成? – Vasseurth

相关问题