0

我正在编写一个复杂的活动记录查询来从多个表中获取数据,该查询有连接、选择、顺序、组、选择位置。

         @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 , joins 等按照标准的顺序应该是什么,并最大限度地提高查询的性能。如果有人可以写一个查询来解释这个序列,那就太好了

@posts = Post.published.joins(:comments, :images, :updates, :user).where(....
4

1 回答 1

0

据我所知,顺序无关紧要。

一个例子是:

@posts = Post.published.select('posts.id').
  joins(:comments, :images, :updates, :user).
  where('users.email = ?', 'john@doe.com').
  group('posts.id')
于 2013-03-29T11:03:10.703 回答