Почему бы вам не использовать связанный дочерний объект, который имеет атрибут (например, gender
), если он является сыном или дочерью.
Child
модель (мужской или женский, в зависимости отзначение в gender
):
class Child
include Mongoid::Document
field :gender, :type => Symbol
# and more fields as you probably want
embedded_in :parent, :inverse_of => :child
# your validation code
def son?
gender == :male
end
def daughter?
gender == :female
end
end
будет встроено в Parent
модель:
class Parent
include Mongoid::Document
embeds_one :child
validates_associated :child
end