我有这个控制器方法
def dashboard
method1
method2
method3
..
end
在development
环境中一切正常
但在test
环境中,
我在前几种方法后得到了这个错误。
我在我用来获取错误的行上方使用binding.pry
进行了检查,
我无法运行任何查询eg: Account.first
但同一Account.first
适用于dev
环境
我在test
环境中运行时出错:
ActiveRecord::StatementInvalid: PG::InFailedSqlTransaction: ERROR: current transaction is aborted, commands ignored until end of transaction block
: SELECT "accounts".* FROM "accounts" ORDER BY "accounts"."id" ASC LIMIT 1
from /home/qwinix/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activerecord-4.2.4/lib/active_record/connection_adapters/postgresql_adapter.rb:596:in `async_exec'
请注意以下
method1
添加了一些代码,这些代码在两个环境中执行得很好。我在method3
之后收到了这些错误,我没有碰过。PS:我确实谷歌和搜索stackoverflow问题,没有帮助
编辑:当我移动method1
结束时,我没有收到任何错误,请解释我这种行为。
答案 0 :(得分:0)
您是否尝试重置测试数据库?
fun onBtnClick() {
val handler = Handler()
handler.postDelayed({ showToast() }, 3000)
}
fun showToast(){
Toast.makeText(context, "Its toast!", Toast.LENGTH_SHORT).show()
}
或适用于5岁以上的Rails版本
bundle exec rails db:drop RAILS_ENV=test
bundle exec rails db:create RAILS_ENV=test
bundle exec rails db:schema:load RAILS_ENV=test
或更短:
bundle exec rake db:reset RAILS_ENV = test