0
我的應用有用戶。這些用戶屬於一個或多個組。顯然,組可以有很多用戶。羣組和用戶有很多oder有很多通過?
我如何在Rails中做到這一點? 這是一個有很多或有很多通過關聯?第三種模式的名稱是什麼,如果它「有許多通過」?沒有什麼似乎是有道理的。或者它只是像「組用戶鏈接」?
如果我在相應的表中有user_id和group_id,當用戶有多個組時會發生什麼?
我的應用有用戶。這些用戶屬於一個或多個組。顯然,組可以有很多用戶。羣組和用戶有很多oder有很多通過?
我如何在Rails中做到這一點? 這是一個有很多或有很多通過關聯?第三種模式的名稱是什麼,如果它「有許多通過」?沒有什麼似乎是有道理的。或者它只是像「組用戶鏈接」?
如果我在相應的表中有user_id和group_id,當用戶有多個組時會發生什麼?
是的,有一種方法。如果你想擁有多對多的關係,你只需要一個連接表。假設您的用戶羣屬於多個羣組,並且羣組可能屬於多個用戶。
所以,你可以定義的連接表是這樣的:
rails g model user_group user_id:integer:index group_id:integer:index
這會爲你生成一個遷移文件和模型user_group.rb
運行遷移,並把下面的東西在其他型號:
在user_group.rb
class UserGroup < ActiveRecord::Base
belongs_to :user
belongs_to :group
end
我n您的用戶模型
class User < ActiveRecord::Base
has_many :user_groups
has_many :groups, through: :user_groups
....
end
所以在你的模型組
class Group < ActiveRecord::Base
has_many :user_groups
has_many :users, through: :user_groups
.....
end
這是你可以達到你想要的關係。
感謝您的好回答。我想我還發現了一個吸引人的模型名稱:用戶通過成員資格進行了分組。 – 2014-11-25 07:29:29
更有意義:) – Rubyrider 2014-11-25 07:39:36