Из базы данных database_cleaner Документация , надеюсь, это поможет:
Одним из мотивов для написания этой библиотеки был простой способ включить то, что Rails называет «транзакция-фиксация»в моих не рельсах проекты ActiveRecord.Например, Cucumber поставляется с миром Rails, который обернет каждый сценарий в транзакции.Это здорово, но что, если вы используете ActiveRecord в не-рельсовом проекте?Раньше вам приходилось копировать и вставлять необходимый код, но теперь с DatabaseCleaner вы можете сказать:
# env.rb
require 'database_cleaner'
require 'database_cleaner/cucumber'
DatabaseCleaner.strategy = :transaction
Теперь предположим, что вы запускаете свои функции, и для этого требуется, чтобы был задействован другой процесс (например, Selenium, работающий на сервере вашего приложения.) Вы можете просто изменить тип своей стратегии:
# env.rb
require 'database_cleaner'
require 'database_cleaner/cucumber'
DatabaseCleaner.strategy = :truncation
Вы можете получить лучшее из обоих миров и использовать лучший для своей работы:
# env.rb
require 'database_cleaner'
require 'database_cleaner/cucumber'
DatabaseCleaner.strategy = (ENV['SELENIUM'] == 'true') ? :truncation : :transaction