回答

收藏

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

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

我有一个模型Comment,它具有has_a个用户。
# N- m  T4 L6 y' w( F. E+ t7 k在显示页面中,我正在执行Comment.all,然后显示每个注释。6 F9 h  x6 b. a! v. G/ C0 R; |
在视图中,我不仅需要显示评论,还需要显示有关关联用户(即作者)的信息。
$ D1 [2 l! M9 ]! ~  g/ J* }7 ^6 @/ \, w
    : _& @* V2 u% {, C5 r) y5 j- ~
    3 m4 j$ t% Q9 j9 S) h1 P$ p7 i
    ...etc...2 U' a) _% v' y% S
' ^, U5 z! d' B% C' x. D; d; |
很好,一切都很好,但是activerecord可以SELECT * FROM users WHERE USER.id =
/ |' [% ~9 [& ^commentId根据我的每个注释将其转换为一个查询。
) I/ X) t; J: l- ~* N  |' I这有点荒谬,尤其是在包含数百条评论的页面上。(这是数百个单独的数据库命中!)
( B$ i% o* o' J当我执行Comment.all时,有什么地方告诉rails不仅要获取注释,还要获取关联的用户,然后稍后再调用comment.user.blah时,它不再从数据库中获取它。5 Q, h4 ?/ H% |5 z, H
?(这样,它将在一个db语句中完成所有操作)。3 \9 w. b8 h, K! B3 L
               
7 h- v8 M$ z- R+ i' z; j" h解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则