2013-05-30 52 views
0

如果字段具有特定的值,我該怎麼做embeds_many?例如。假設一個家庭的成員可以有一輛或多輛汽車if他們年齡大於或等於18歲。embeds_many的條件?

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

在活動記錄,你可以做

has_many :cars, :conditions => ['age >= ?', 18] 

我還沒有嘗試過mongoid它雖然。

0
embeds_many :cars, :if => :check_age 

def check_age 
    return true if self.age >= 18 
end 
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,然後可以修改條件,按您的需要。