我想知道,有没有简单的方法来检查当前请求中是否执行了给定的SQL?
让我说
class Candy < ActiveRecord::Base
def yummiest_candies
@yummiest_candies = where(yummy: true, user_id: 1)
end
def do_something
if was_executed?(yummiest_condies.to_sql)
'do something'
end
end
def was_executed?
# any ideas ??
end
end
显然我可以检查日志,但我想知道是否有内置的解决方案。
此外,我可以检查实例变量@yummiest_candies
是否存在但是想知道是否有检查SQL的解决方案
问题2: 你认为下面的代码值得做吗? (在很复杂的情况下可能)
# app/model/candy.rb
#...
def factory_ids
if was_executed?(yummiest_candies.to_sql)
yummiest_candies.collect(&:factory_id)
else
yummiest_candies.pluck(:factory_id)
end
end
#...
谢谢