我想知道,有没有简单的方法可以检查给定的 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
#...
谢谢