我正在编写一个复杂的Active记录查询来从多个表中获取数据,该查询具有连接,选择,排序,分组,选择位置。
@posts = Post.published.paginate(:order => 'popularity desc, id',
:joins => [:comments, :images, :updates, :user],
:conditions => conditions,
:group => "posts.id",
:select => "posts.id*,
:per_page => 10,
:page => params[:page])
我想知道根据标准应该是where,join等的序列,并最大化查询的性能。如果有人可以写一个查询来解释那些非常棒的序列,比如
@posts = Post.published.joins(:comments, :images, :updates, :user).where(....
答案 0 :(得分:0)
据我所知,顺序并不重要。
一个例子是:
@posts = Post.published.select('posts.id').
joins(:comments, :images, :updates, :user).
where('users.email = ?', 'john@doe.com').
group('posts.id')