Я хочу отключить кэш запросов ActiveRecord от ruby, но он не работает, код приведен ниже:
def test_transaction
ActiveRecord::Base.connection.execute("create table if not exists t(name varchar(100))")
ActiveRecord::Base.connection.uncached do
begin
ActiveRecord::Base.transaction do
ActiveRecord::Base.connection.execute("insert into t values('one')")
ActiveRecord::Base.connection.execute("insert into t values('two')")
ActiveRecord::Base.connection.execute("insert into t values('three')")
ActiveRecord::Base.connection.execute("insert into t values('four')")
result = ActiveRecord::Base.connection.select_all("select count(*) as total from t")[0]['total'].to_i
assert_equal(0, result)
end
ensure
ActiveRecord::Base.connection.execute("drop table if exists t")
end
end
end
На самом деле, когда код запускается в строке перед выбором, я вхожу в mysql через консоль и выполняю тот же запрос выбора, итоговый результат равен нулю, так что все в порядке, но после выполнения кода выбором результат 4, то есть select должен извлекаться из кэша запросов, но я не собираюсь этого делать, поэтому кто-нибудь может мне помочь?
Заранее спасибо!