2013-05-30 3 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, а затем вы можете изменить условия в соответствии с вашими потребностями.

Смежные вопросы