完全なエラーは
ActiveRecord::StatementInvalid: Mysql2::Error: SAVEPOINT active_record_1 does not exist: ROLLBACK TO SAVEPOINT active_record_1
単体テストを作成していますが、新しいActiveRecordオブジェクトを作成しようとすると、このエラーが発生しますが、特定のポイントの後でのみ発生します。これは、次の行の後に発生します。
ActiveRecord::Base.connection.execute "DROP TABLE IF EXISTS foo"
ActiveRecord::Base.connection.execute "CREATE TABLE foo (id INTEGER PRIMARY KEY)"
(テストが成功すると、テーブル'foo'にデータが入力されます)
上記の行の前に、私は次のようなものを書くことができます
User.create(email => 'foo@bar.com')
そして、すべてが正常に動作します。ただし、を呼び出した後に上記の行を書き込もうとすると、上記のようActiveRecord::Base.connection.execute
になりSAVEPOINT error
ます。また、executeステートメントをトランザクション内に配置しようとしましたが、それは役に立ちませんでした。私は困惑しています。
参考までに-私はRails3.2.8を使用しています