数据库: PostgreSQL 9.6.6
Rails版本: 5.0.2
Ruby版本: 2.3.1p112(2016-04-26修订版54768)[x86_64-darwin16]
我正在调试一个返回数据子集的应用程序代码,我看到的一个问题是Rails' Active Record在过滤之前返回所有数据。我调试的代码行是:
@al ||= CC.find(@e.mcc.first.cc_id).additional_languages&.split(',') || []
.first
方法从表中检索所有数据,然后拉出第一条记录。表中有超过9100万行,如果查询在抓取.first
行之前没有将所有这些行拉回来,我希望如此。
是否有一个列表或一些文档会告诉我哪些rails方法返回完整的结果集,哪些不返回?
答案 0 :(得分:0)
找出解决方案。使用.find_by()
解决了我遇到的问题。代码行现在看起来像这样:
@al ||= CC.find_by(id: (MCC.find_by(export_id: @e.id).cc_id)).additional_languages&.split(',') || []
谢谢大家的帮助。