在我的rails应用程序中进行数据库调用时,我正试图遵循“只选择你需要的东西”的口号。目前我急于将所有用户加载到他们的帖子中,但是我注意到这会为每个用户选择用户表中的每一列。
我尝试使用连接,它提供了一种更简单的方法来选择我需要的特定属性,但是我使用的是paperclip和用户has_attached_file。我目前还没有找到在联接中包含此内容的方法。
我只是想知道是否有人就数据库性能方面加载用户和帖子的最佳方式有什么建议或提示?
目前要检索用户我只是使用这种语法:
Post.all.includes(:user)
答案 0 :(得分:1)
你试过Post.eager_load(:user)
吗?应该在单个查询中获取所有Post字段和所有User字段,并为每个字段实例化AR对象。回形针附件将存储在4-5个字段下的用户表中,以相同的前缀开头。这些应该通过Post.eager_load(:user)
加载。
此不会工作的唯一原因是Post和User之间的关联是多态的。