回答

收藏

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

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

我有一个模型Comment,它具有has_a个用户。% T7 T* I2 G  [8 `
在显示页面中,我正在执行Comment.all,然后显示每个注释。
" w) z" t% x* w3 ~( B在视图中,我不仅需要显示评论,还需要显示有关关联用户(即作者)的信息。
: U: L. J- M+ E9 T6 ~9 j6 W4 L" ?9 O, U3 c  L5 _
    , G7 ~+ V2 W* A4 b9 _3 r
    # e5 b2 U+ Q4 d; S7 f
    ...etc...
( Z" O  {  z' s9 M2 `  _1 E
5 @  C6 |, D5 D8 I很好,一切都很好,但是activerecord可以SELECT * FROM users WHERE USER.id =
7 L: l) @. t" X) {( |: GcommentId根据我的每个注释将其转换为一个查询。% l, C. O: f) n9 d0 x& g
这有点荒谬,尤其是在包含数百条评论的页面上。(这是数百个单独的数据库命中!)- A$ A# V* f* Q: u  k+ Z5 ?/ L: m
当我执行Comment.all时,有什么地方告诉rails不仅要获取注释,还要获取关联的用户,然后稍后再调用comment.user.blah时,它不再从数据库中获取它。
/ r0 U3 m2 m; ??(这样,它将在一个db语句中完成所有操作)。
. S: e: V+ p2 R7 b                . r$ T2 H9 y# G
解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则