回答

收藏

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

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

我有一个模型Comment,它具有has_a个用户。) F# N4 w) I/ r6 h
在显示页面中,我正在执行Comment.all,然后显示每个注释。
  T* d6 {  d, I3 [5 c在视图中,我不仅需要显示评论,还需要显示有关关联用户(即作者)的信息。3 t* w5 o! p5 n1 Z7 m8 b# D

' U. N, Z, D4 t' i7 A    9 k1 g' |0 y$ {( x/ O. H
   
6 L  T, |; u7 d4 c7 D    ...etc...' \( N8 ]: x- C* H$ p
- X, f3 \) X- A# m7 x$ @  x8 F
很好,一切都很好,但是activerecord可以SELECT * FROM users WHERE USER.id =9 X/ ]4 Y: k# r1 \
commentId根据我的每个注释将其转换为一个查询。8 ]8 X/ \6 N. ^& b* b. P
这有点荒谬,尤其是在包含数百条评论的页面上。(这是数百个单独的数据库命中!)' ]/ X9 E" k; O7 E/ o9 w
当我执行Comment.all时,有什么地方告诉rails不仅要获取注释,还要获取关联的用户,然后稍后再调用comment.user.blah时,它不再从数据库中获取它。* X, J# @) k+ F* l: r& d* R
?(这样,它将在一个db语句中完成所有操作)。' K6 J( R$ n% s, H- M* D  Q5 D  B
               
' ~8 q, ?% N7 C7 K解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则