С ruby on rails
у меня есть модель player
, у которой много games
. Однако игрок должен иметь как минимум три игры. У меня есть собственный валидатор, который добавляет к ошибкам, если нет трех игр. Я могу создать игрока с тремя играми, объявив в player
модель
accepts_nested_attributes_for :games
и используйте вложенный хэш атрибутов игрока и игры для создания player
и его игр.
Однако в целях тестирования я иногда хочу добавлять игры по одной, используя rspec
код, такой как
player = create: :player
game = create :game
player.games << game
Но это не будет работать, потому что create :player
запускает пользовательскую проверку и завершается ошибкой, потому что в ней нет трех игр.
Есть ли способ сделать это. Если я не могу этого сделать, я могу проверить чувствительность к конкретной игре только путем создания вложенного хэша, что затрудняет понимание того, что делает тест, поскольку смена ключа находится глубоко в хэше.