回答

收藏

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

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

我有一个模型Comment,它具有has_a个用户。
5 E0 ]% P2 U. o, S; r在显示页面中,我正在执行Comment.all,然后显示每个注释。
, p- V( `+ ]  s+ p- l1 s$ [在视图中,我不仅需要显示评论,还需要显示有关关联用户(即作者)的信息。' b3 I7 W3 z2 n- l& i* ?
" A+ |% U: }9 g* i
    * [: q" g: C' z; s- Z, W. R: ^1 v4 ^
   
6 Y/ X% T: ~+ O" w    ...etc...% s9 j: q7 E+ I  l4 o( S' e% c/ G2 d
" r7 P1 \7 x" _& L* x* R1 e. Y) r
很好,一切都很好,但是activerecord可以SELECT * FROM users WHERE USER.id =+ x  i- i, n( a8 j" ^! `
commentId根据我的每个注释将其转换为一个查询。
" _0 o6 \" |* e这有点荒谬,尤其是在包含数百条评论的页面上。(这是数百个单独的数据库命中!)1 o! O8 j5 H' O6 g1 B* k1 z1 Q1 i
当我执行Comment.all时,有什么地方告诉rails不仅要获取注释,还要获取关联的用户,然后稍后再调用comment.user.blah时,它不再从数据库中获取它。
- h. a  @  V' z$ _" X1 j( ^# T! L6 p0 l?(这样,它将在一个db语句中完成所有操作)。
" z6 G0 h- U+ I. K                9 W: I& p# J0 Z% V+ j7 G2 _
解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则