Автоматическое увеличение первичного ключа с помощью RSpec

#ruby-on-rails #rspec #ruby-on-rails-5 #rspec-rails

#ruby-on-rails #rspec #ruby-on-rails-5 #rspec-rails

Вопрос:

У меня есть подобная ассоциация — заказ, имеющий много подзаказов, который, в свою очередь, содержит много позиций. Я пытаюсь обновить некоторые заказы с существующими идентификаторами позиций и создать несколько новых. Мой запрос заключается в следующем.

 order: {
  id: order.id,
  sub_orders_attributes: {
    "0": {
      id: 1,
      line_items_attributes: [
        {
          id: 1,
          requested: 10
        },
        {
          id: 2,
          requested: 10
        }
      ]
    },
    "1": {
      line_items_attributes: [
        {
          requested: 10
        }
      ]
    }
  }
}
  

Теперь при этом я получаю эту ошибку

 ActiveRecord::RecordNotUnique: PG::UniqueViolation: ERROR:  duplicate key value 
violates unique constraint "sub_orders_pkey"
DETAIL:  Key (id)=(1) already exists.
  

поскольку я не предоставил идентификаторы для новых элементов. Также эта проблема не появляется в средах разработки / производства. Только с помощью rspec. Есть предложения о том, как я могу это решить? Спасибо.

Комментарии:

1. вы добавили и настроили средство очистки базы данных ?

2. Как обрабатывается ваша полезная нагрузка? Кроме того, не могли бы вы рассказать немного больше о вашей тестовой настройке?