ast*_*asr 1 ruby activerecord ruby-on-rails
我有一组ActiveRecord模型,我预先加载它们以避免N + 1问题.为了帮助完成这个过程,我希望能够进行一些手动测试,其中(概念上)块看起来如下所示:
# Prepare some data
data = Foo.includes(:bar, {baz: :quux}).find(27)
ActiveRecord.raise_error_if_any_queries_occur
perform_some_work_with_data(data)
ActiveRecord.back_to_normal
Run Code Online (Sandbox Code Playgroud)
这似乎应该有办法,但我没有运气.还有其他人这样做过吗?
您可以断开ActiveRecord与数据库的连接,并在完成后重新连接它:
data = Foo.includes(:bar, {baz: :quux}).find(27)
Foo.connection.disconnect!
perform_some_work_with_data(data)
Foo.connection.reconnect!
Run Code Online (Sandbox Code Playgroud)
如果在ActiveRecord断开连接时有任何尝试对数据库运行查询,则会引发错误.
| 归档时间: |
|
| 查看次数: |
296 次 |
| 最近记录: |