【发布时间】:2012-12-13 10:25:23
【问题描述】:
我有一个 Rails 应用程序,我可以使用 ARel “includes”(例如)显着加快速度。 (人为的)
class User < ActiveRecord::Base
has_many :posts
scope :eager, includes(:posts => [:rating, :author, {:tags => [:day, {:foo => :bar}]}] )
end
打电话
@posts = current_user.posts.eager
极大地减少了页面负载,并大大减少了查询次数。 Rails 通过首先在一个查询中选择帖子来做到这一点
select * from posts where ...
然后在一个查询中选择所有这些帖子的所有 cmets,而不是每个评论一个查询:
select * from comments where post_id in (6,7,8,9,10,...)
在 grails 中是否有等价物?我熟悉条件和命名查询,我可以在其中编写包含大量连接的查询,但我希望 Grails 使用“IN”运算符生成一些查询。
【问题讨论】:
标签: ruby-on-rails grails grails-orm arel