这是我在做一个小项目时遇到的一个设计问题: 我有一个 Group 对象,一个 Member 对象。 我希望 Group 里包含一个 female_members 的关联,和一个 male_members 的关联,用来方便访问男/女成员列表。
所以我现在的问题是, 1 能否在相同的 models 之间产生 多组 many-to-many association ? 2 这种设计是否合理? 3 希望大家说说自己认为更好的实现方法。
谢谢:)
class Membership < ActiveRecord::Base belongs_to :member belongs_to :group end
class Member < ActiveRecord::Base has_many :memberships end
class Group < ActiveRecord::Base has_many :memberships has_many :female_members, through: :memberships, source: : member, conditions: "memberships.gender = 'female'" has_many :male_members, through: :memberships, source: : member, conditions: "memberships.gender = 'male'" end
http://feipinghuang.lue.so/2012/11/27/has_many-magic/
@feipinghuang 代码很直观,thx!