首页 > 解决方案 > ActiveRecord::Base#all, where, joins etc 方法在确保块后执行

问题描述

我正在尝试Model.all在开始确保块中执行。但确保块代码在查询之前执行,例如,

def some_method
   puts "start"
   Model.all
ensure
   puts "ensure"
end

预期输出:

start
SELECT "models".* FROM "models";
#<ActiveRecord::Relation [#<Model id:1 ..>,...]>
ensure

实际输出:

start
ensure
SELECT "models".* FROM "models";
#<ActiveRecord::Relation [#<Model id:1 ..>,...]>

标签: ruby-on-rails

解决方案


推荐阅读