2013-03-30 2 views
0

У меня есть две модели Предмет и TagКак проверить количество связанных документов?

class Item 
    include Mongoid::Document 

    field :title, type: String 
    has_many :tags 

    validates_length_of :tags, minimum: 1 
end 

class Tag 
    include Mongoid::Document 

    field :title, type: String 
    belongs_to :item 
end 

Деталь должен иметь минимум 1 тег. Когда элемент создается валидация работает очень хорошо:

item = Item.create(title: "black hole") 
item.tags << Tag.create(title: "black") 
item.tags << Tag.create(title: "heavy") 

puts item.valid? # => true 
item.save 

Но проверка не пройдена, когда существует элемент изменен:

item = Item.find(item.id) 

item.title = "nothing" 
puts item.tags.count # => 2, it's ok 
puts item.valid? # => false, it's wrong 

Как проверить количество соответствующих документов должным образом?

+0

Вы можете сделать быструю проверку на 'item.errors', чтобы увидеть, если это действительно теги, которые вызывают ошибку проверки? – depa

ответ

0

Вы пытаетесь добавить в блокнот attr_accessible?

Это будет выглядеть следующим образом:

class Item 
    include Mongoid::Document 

    attr_accessible :title # <-- here 
    field :title, type: String 
    has_many :tags 

    validates_length_of :tags, minimum: 1 
end 
Смежные вопросы