【发布时间】:2012-01-04 05:58:44
【问题描述】:
我有一个模型评论,它有一个用户。
在我的显示页面中,我正在做一个Comment.all,然后显示每个评论。
在视图中,我不仅需要显示评论,还需要显示相关用户(即作者)的信息。
<% @comments.each do |comment| %>
<%= comment.user.name %>
<%= comment.user.email %>
...etc...
<% end %>
这很好,但是根据我的每条评论,activerecord 会将其转换为一个SELECT * FROM users WHERE USER.id = commentId 查询。
这有点荒谬,尤其是在有数百个 cmets 的页面上。 (这是数百个单独的独立数据库命中!)
当我在执行 Comment.all 时,是否可以告诉 rails 不仅要抓取 cmets,还要抓取关联的用户,然后当我稍后调用 comment.user.blah 时,让它不抓取它再次从分贝? (这样它就可以在一个 db 语句中完成所有操作)。
【问题讨论】:
标签: sql ruby-on-rails postgresql activerecord