如果字段具有特定值,我该如何embeds_many
?例如。让我们假设一个家庭成员可以有一辆或多辆汽车if
他们年龄大于或等于18岁。
class FamilyMember
include Mongoid::Document
# Psuedo code
embeds_many :cars, :if :age >= 18
field :member_type, :type => String # can be dad, mom, son, daughter
field :age, :type => Integer
end
这样的事情是可能的,还是我必须通过其他方式。即验证?
答案 0 :(得分:2)
尝试此操作并查看here以获取更多信息
embeds_many :cars do
def with_age(age=18)
where(age: age)
end
end
然后您必须使用此类family_member.cars.with_age(18)
或family_member.cars.with_age
,然后您可以根据需要修改条件。
答案 1 :(得分:0)
在活动记录中你可以做到
has_many :cars, :conditions => ['age >= ?', 18]
虽然我没有在mongoid中尝试过它。
答案 2 :(得分:0)
embeds_many :cars, :if => :check_age
def check_age
return true if self.age >= 18
end