フィールド名と性別を持つユーザーモデルがあります。また、ユーザーは他のユーザーと「配偶者」と呼ばれる 1 対 1 の関連付けを行うことができます。関連付けは、男性ユーザーと女性ユーザーの間で行う必要があります。
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、
上記の関連付けでは、1 人のユーザーに対して多くの行を作成でき、@user.spouse_list.spouse.name で配偶者にアクセスすると最初の行が表示されます
男性ユーザーと女性ユーザーを制限するにはどうすればよいですか?