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

相關問題