При сохранении объекта путем вызова Entity.create(:name => "Entity1")
из консоли Rails в тестовой среде (RAILS_ENV=test rails console
) объект "Entity1" правильно отображается в тестовой базе данных (MySQL) при проверке его с помощью клиента mysql. Но когда вы делаете то же самое в файле rspec (entity.create(:name => "Entity1"); sleep 100
) и проверяете тестовую базу данных во время функции сна, она оказывается совершенно пустой. Почему так? Где сохраненная запись? (Мне это нужно в то время в базе данных из-за некоторого тестирования Sphinx.)
Я просто хотел бы добавить, что запрос созданной сущности в спецификации работает нормально (даже если она не отображается в клиенте базы данных). Так что кажется, что Rails делает здесь какие-то чудесные вещи, которые я действительно не понимаю.
Еще более странно (по крайней мере для меня ;-)) ... при выполнении Entity.connection.commit_db_transaction()
после создания объекта запись внезапно появляется в базе данных (но больше не очищается автоматически).