回答

收藏

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

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

我有一个模型Comment,它具有has_a个用户。
" e( i7 g8 I7 ~3 b1 j3 V0 g- v在显示页面中,我正在执行Comment.all,然后显示每个注释。
8 n2 d9 M7 {5 ?在视图中,我不仅需要显示评论,还需要显示有关关联用户(即作者)的信息。6 m0 Q9 A9 y: }0 k7 b1 M
$ ^; M% h0 I2 \+ G) K- v
   
" B6 [5 l( b1 E' g" a2 P2 g   
1 Q2 f( ]7 X/ U  F    ...etc...
' s- w) s- l0 U8 r, A* Y5 O) S9 n7 K3 {4 U" N
很好,一切都很好,但是activerecord可以SELECT * FROM users WHERE USER.id =" m" t( N: B( s+ W0 D  X4 w" c+ E- z
commentId根据我的每个注释将其转换为一个查询。
0 h4 ~8 {+ c' N7 g3 s; L这有点荒谬,尤其是在包含数百条评论的页面上。(这是数百个单独的数据库命中!), c& ^5 k& s8 I7 e" w$ _# s
当我执行Comment.all时,有什么地方告诉rails不仅要获取注释,还要获取关联的用户,然后稍后再调用comment.user.blah时,它不再从数据库中获取它。
# I7 h; G  M( m  o?(这样,它将在一个db语句中完成所有操作)。
2 E8 L" s% ]5 u1 @4 d% k               
8 }) {, `* ]0 p; a解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则