我有一个包含字段名称和性别的用户模型。并且用户可以与另一个用户建立称为“配偶”的一对一关联,该关联必须在男性用户和女性用户之间。
在railscasts self-referential-association的帮助下,我创建了这样的基本关联,
class User < ActiveRecord::Base
has_one :spouse_list
has_one :spouse, :through => :spouse_list
has_one :inverse_spouse_list, :class_name => "SpouseList", :foreign_key => "spouse_id"
has_one :inverse_spouse, :through => :inverse_spouse_list, :source => :user
end
class SpouseList < ActiveRecord::Base
belongs_to :spouse, :class_name => "User"
belongs_to :user
end
SpouseList 有字段 :spouse_id, :user_id,
上述关联可以为单个用户创建多行,如果通过@user.spouse_list.spouse.name 访问配偶,则显示第一行
如何在男性用户和女性用户之间进行限制?