Каков правильный метод ограничения количества встроенных документов с использованием Mongoid with Rails.Ограничение количества встроенных документов в Mongoid
Я попытался это:
class League
include Mongoid::Document
embeds_many :teams
validate :validate_teams
def validate_teams
if teams.size > 6
errors.add(:base, "too many teams")
end
if !errors.empty?
raise Mongoid::Errors::Validations.new(self)
end
end
end
Но это нарушит его:
# Get a league with 5 teams.
league = League.first
# Get a copy of the league.
copy = League.first
# Create a new team for the first instance of the league and save.
league.teams.build
league.save
# Create a new team for the second instance and save.
copy.teams.build
copy.save
league.reload.teams.size # => 7
Этот случай может стать очевидным в производстве с несколькими экземплярами приложения рельсами и отвечать на запросы одновременно , Мне нужен надежный метод для ограничения количества встроенных документов. Каков правильный способ сделать это?
у вас есть суть или репо с вашей версией optimistic_locking? – transGLUKator