回答

收藏

Rails可以一口气捕获所有需要的关联吗?

技术问答 技术问答 279 人阅读 | 0 人回复 | 2023-09-12

我有一个模型Comment,它具有has_a个用户。
! k% u) _6 M/ R( x" A在显示页面中,我正在执行Comment.all,然后显示每个注释。
# t. Q3 V* v! I& N) [在视图中,我不仅需要显示评论,还需要显示有关关联用户(即作者)的信息。$ `' N$ T  x& h* M% d( i$ [* g9 x
% U. M6 R$ I* f4 }% j
   
# h1 y: U6 ?0 W    ( b) ~* D' j+ o% C  P# o# i- L
    ...etc...
5 A9 o/ \5 m2 y& d5 H
/ {" }7 M+ I' g8 [! E, \很好,一切都很好,但是activerecord可以SELECT * FROM users WHERE USER.id =* N: z1 s& l8 c! w+ e
commentId根据我的每个注释将其转换为一个查询。2 B0 q* z  }% e' s) ?; D
这有点荒谬,尤其是在包含数百条评论的页面上。(这是数百个单独的数据库命中!)# T  L! C, M: d# R$ G' B
当我执行Comment.all时,有什么地方告诉rails不仅要获取注释,还要获取关联的用户,然后稍后再调用comment.user.blah时,它不再从数据库中获取它。7 B) y3 Q( U7 @$ T) U3 B8 @
?(这样,它将在一个db语句中完成所有操作)。
% b2 m: Q' f; h) p) F' Z+ |                5 Z( a: b7 M' ?5 l6 N. R
解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则